39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
|
|
'use strict';
|
||
|
|
|
||
|
|
function intercept(method, handler) {
|
||
|
|
var console = window.console;
|
||
|
|
var original = console[method];
|
||
|
|
console[method] = function () {
|
||
|
|
handler(method);
|
||
|
|
// do sneaky stuff
|
||
|
|
if (original.apply) {
|
||
|
|
// Do this for normal browsers
|
||
|
|
original.apply(console, arguments);
|
||
|
|
} else {
|
||
|
|
// Do this for IE
|
||
|
|
var message = Array.prototype.slice.apply(arguments).join(' ');
|
||
|
|
original(message);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
function handleConsoleCall(type) {
|
||
|
|
var element = document.querySelector('#log_' + type);
|
||
|
|
if (element) {
|
||
|
|
if (!element.classList.contains("hasCount")) {
|
||
|
|
element.classList.add("hasCount");
|
||
|
|
}
|
||
|
|
|
||
|
|
var devTopBar = document.querySelector('#dev-top-bar');
|
||
|
|
devTopBar.style.display = 'block';
|
||
|
|
|
||
|
|
element.innerHTML = parseInt(element.innerHTML) + 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (window.console) {
|
||
|
|
var methods = ['error', 'warn'];
|
||
|
|
for (var i = 0; i < methods.length; i++) {
|
||
|
|
intercept(methods[i], handleConsoleCall);
|
||
|
|
}
|
||
|
|
}
|