Auf der Grundlage von zwei früheren Antworten von
und die Dokumentationen für
Hier ist eine Best-Effort-Implementierung für das Problem, d.h. wenn es eine console.log gibt, die tatsächlich existiert, füllt es die Lücken für nicht existierende Methoden über console.log aus.
Zum Beispiel für IE6/7 können Sie logging mit alert (dumm, aber funktioniert) ersetzen und fügen Sie dann die unten Monster (ich nannte es console.js): [Sie können die Kommentare nach eigenem Ermessen entfernen, ich habe sie nur als Referenz eingefügt, ein Minimierer kann sie beseitigen]:
<script type="text/javascript" src="console.js"></script>
und console.js:
(function() {
var console = (window.console = window.console || {});
var noop = function () {};
var log = console.log || noop;
var start = function(name) { return function(param) { log("Start " + name + ": " + param); } };
var end = function(name) { return function(param) { log("End " + name + ": " + param); } };
var methods = {
assert: noop, clear: noop, trace: noop, count: noop, timeStamp: noop, msIsIndependentlyComposed: noop,
debug: log, info: log, log: log, warn: log, error: log,
dir: log, dirxml: log, markTimeline: log,
group: start('group'), groupCollapsed: start('groupCollapsed'), groupEnd: end('group'),
profile: start('profile'), profileEnd: end('profile'),
time: start('time'), timeEnd: end('time')
};
for (var method in methods) {
if ( methods.hasOwnProperty(method) && !(method in console) ) {
console[method] = methods[method];
}
}
})();