恢复console.log()

出于某种原因,Magento附带的原型框架(或其他JavaScript代码)正在取代标准控制台功能,因此我无法调试任何内容。 在JavaScript控制台console写下我得到以下输出:

> console
Object
assert: function () {}
count: function () {}
debug: function () {}
dir: function () {}
dirxml: function () {}
error: function () {}
group: function () {}
groupEnd: function () {}
info: function () {}
log: function () {}
profile: function () {}
profileEnd: function () {}
time: function () {}
timeEnd: function () {}
trace: function () {}
warn: function () {}

我在Linux上使用Google Chrome version 13.0.782.112版。

Prototype JavaScript framework, version 1.6.0.3

有没有快速解决这个问题的方法?


例如,

delete console.log

还会恢复console.log

console.log = null;
console.log;         // null

delete console.log;
console.log;         // function log() { [native code] }

由于原始控制台位于window.console对象中,因此请尝试从iframe恢复window.console

var i = document.createElement('iframe');
i.style.display = 'none';
document.body.appendChild(i);
window.console = i.contentWindow.console;
i.parentNode.removeChild(i);

适用于Chrome 14上的我。


Magento在/js/varien/js.js有以下代码 - 将它注释掉并且可以使用。

if (!("console" in window) || !("firebug" in console))
{
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() {}
}
链接地址: http://www.djcxy.com/p/52659.html

上一篇: Restoring console.log()

下一篇: How to detect and measure event loop blocking in node.js?