Handle an existing console

This commit is contained in:
~lucidiot 2022-09-19 00:23:46 +02:00
parent 67219b24fa
commit 0894879337
1 changed files with 15 additions and 9 deletions

View File

@ -1,5 +1,3 @@
window.console = {};
window.onload = function () {
var output = document.getElementById("output");
var input = document.getElementById("input");
@ -58,8 +56,12 @@ window.onload = function () {
}
}
function makeLogger (color) {
var originalConsole = window.console;
window.console = {};
function makeLogger (name, color) {
return function () {
if (originalConsole && originalConsole[name] && originalConsole[name].apply) originalConsole[name].apply(originalConsole, arguments);
var entry = document.createElement('div');
entry.style.margin = '0';
entry.style.padding = '1px';
@ -75,11 +77,11 @@ window.onload = function () {
}
}
console.log = makeLogger();
console.debug = makeLogger('darkgray');
console.info = makeLogger();
console.warn = makeLogger('orange');
console.error = makeLogger('red');
console.log = makeLogger('log');
console.debug = makeLogger('debug', 'darkgray');
console.info = makeLogger('info');
console.warn = makeLogger('warn', 'orange');
console.error = makeLogger('error', 'red');
console.assert = function (assertion) {
if (assertion) return;
@ -105,7 +107,7 @@ window.onload = function () {
console.log(stack.trim());
}
var inputLogger = makeLogger('lightBlue');
var inputLogger = makeLogger('log', 'lightblue');
function run () {
var selected = getSelectedText(input);
var code = selected ? selected : input.value;
@ -119,6 +121,10 @@ window.onload = function () {
}
console.clear = function () {
if (originalConsole && originalConsole.clear) {
if (originalConsole.clear.apply) originalConsole.clear.apply(originalConsole, arguments);
else originalConsole.clear();
}
output.innerHTML = "";
}