我目前使用以下存根来帮助阻止console.log在Internet Explorer 8中抛出错误:
// Protect against IE8 not having developer console open.
var console = window.console || {
"log": function () {
},
"error": function () {
},
"trace": function () {
}
};
我对此解决方案不满意,因为在针对IE8进行调试时,我的控制台日志已完全删除,因为开发人员窗口最初未打开。我需要完全重新加载我的页面,打开开发人员窗口,我的控制台日志不会被删除。
我希望能够提出一个更强大的解决方案,在尝试登录时检查是否存在console.log,而不是首次运行。这将允许我在启动程序后打开IE8开发人员控制台并仍然看到错误。
有没有人有类似的解决方案?这样做的解决方案是否需要使用新变量进行记录? e.g:
var newConsole = window.console || {
"log": function () {
if( window.console ) window.console.log(arguments);
},
"error": function () {
if( window.console ) window.console.error(arguments);
},
"trace": function () {
if( window.console ) window.console.trace(arguments);
}
};
答案 0 :(得分:0)
我需要完全重新加载我的页面,打开开发人员窗口,我的控制台日志不会被删除。
使用window.onerror
而不是存根:
window.onerror = function(message, url, linenumber) {
try
{
console.log([message, url, linenumber]);
}
catch(e)
{
location.hash = [message, url, linenumber];
}
}
<强>参考强>