我有一个JS脚本,在所有的浏览器工作正常。 但对于大家吃惊的是,在IE中它不会在第一次尝试工作。
如果经过我打开我的网页,我按下F12(打开IE调试器),并刷新我的网页,它工作正常! 就像其他的浏览器! 但对于这项工作,我必须按F12。
请问IE的调试器做一些事情,当我们打开它? 我不能找到一个解决办法!
提前致谢。
我有一个JS脚本,在所有的浏览器工作正常。 但对于大家吃惊的是,在IE中它不会在第一次尝试工作。
如果经过我打开我的网页,我按下F12(打开IE调试器),并刷新我的网页,它工作正常! 就像其他的浏览器! 但对于这项工作,我必须按F12。
请问IE的调试器做一些事情,当我们打开它? 我不能找到一个解决办法!
提前致谢。
当你没有调试器中打开,IE认为那里是没有这样的东西的console.log,并为您的错误调用一个未定义的功能。 当你点击F12,那么你得到的控制台等的console.log不再是不确定的。
你可以把这个在你的代码的顶部解决方法:
if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
而不是从你的代码编辑出来的console.log,这只会使浏览器做什么,如果控制台不存在,通过将它们定义为“什么也不做”的功能,如果他们是不确定的。
如果你正在寻找缩小了你的js文件的大小(移动应用尤为重要),你最终还是会希望你的发行版中删除详细记录。
你有类似console.log()
在你的脚本? 这也许可以解释,因为直到你按下F12没有控制台
从以前的帖子加长版
if (!('console' in window)) {
var stub = function() { ; };
window.console = {
log : stub,
info : stub,
warn : stub,
error : stub,
assert : stub
};
}
我张贴这种新的,如果只需要安装存根
/**
* On IE console is not set if not opened and debug doesn't exists
*/
(function() {
if (!('console' in window)) { window.console = {}; }
var kind = ['log', 'info', 'warn', 'error', 'assert', 'debug'];
var stub = function() { ; };
for (var i = 0; i < kind.length; i++) {
if (kind[i] in window.console) { continue; }
window.console[kind[i]] = stub;
}
})();
你们应该看看这个问题,并为深入解释公认的答案: 是否支持IE9的console.log,而且是一个真正的功能?