Tom*_*ger 59 javascript internet-explorer-9
我正在开发一个复杂的网站,它充分利用了jQuery和许多脚本.在加载网站时,我的脚本都没有工作(虽然我可以确认其他脚本运行正常).除了一件事,我不会在SE上发布这样一个蹩脚的问题:
我点击F12打开开发人员工具,以便我可以调试我的问题,一切都立即完美!
更糟糕的是,如果我关闭浏览器,启动它,首先打开Dev Tools并访问该站点,一切都按预期工作.
所以我甚至无法调试这个问题因为Dev Tools修复了它!Dev Tools可以做些什么让事情发挥作用?它是否改变了UA(我做了一些jQuery.browser检测)?它对doctype有用吗?
编辑
我的所有控制台日志记录都包含在以下包装器实用程序函数中:
function log(msg){
if (console){
console.log(msg);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以尝试的任何想法或建议都会受到欢迎.如果我找到解决方案,我会在这里发布.
Lia*_*rch 34
我很欣赏我在这里参加派对的时间已经很晚了,但我有一个IE9的解决方案,它有点不同.
(function() {
var temp_log = [];
function log() {
if (console && console.log) {
for (var i = 0; i < temp_log.length; i++) {
console.log.call(window, temp_log[i]);
}
console.log.call(window, arguments);
} else {
temp_log.push(arguments);
}
}
})();
Run Code Online (Sandbox Code Playgroud)
基本上不是console.log
你用log
.如果console.log
存在,那么它正常工作,否则它将日志条目存储在一个数组中,并在下一个可用的log
地方输出它们console
.
如果它在console
可用时立即推送数据会很好,但这比设置自定义setInterval侦听器要便宜.
我已经更新了这个脚本供我自己使用,并且认为我会分享它.它有一些值得改进:
console.log()
正常,即不再需要使用非标准log()
console.log('foo', 'bar')
console.error
,console.warn
和console.info
(尽管输出它们console.log
)console
每1000ms 检查一次本机,并在找到时输出缓冲区我认为通过这些改进,这已成为IE9的一个非常可靠的垫片.在这里查看GitHub回购.
if (!window.console) (function() {
var __console, Console;
Console = function() {
var check = setInterval(function() {
var f;
if (window.console && console.log && !console.__buffer) {
clearInterval(check);
f = (Function.prototype.bind) ? Function.prototype.bind.call(console.log, console) : console.log;
for (var i = 0; i < __console.__buffer.length; i++) f.apply(console, __console.__buffer[i]);
}
}, 1000);
function log() {
this.__buffer.push(arguments);
}
this.log = log;
this.error = log;
this.warn = log;
this.info = log;
this.__buffer = [];
};
__console = window.console = new Console();
})();
Run Code Online (Sandbox Code Playgroud)
cra*_*der 13
你有控制台调用,如果开发工具没有打开,这些将失败.一个简单的解决方法是在以下函数中包装任何控制台调用:
function log(msg) {
if(console)
console.log(msg);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17403 次 |
最近记录: |