Javascript IE9:脚本仅在调试器中工作,但在不调试时不工作

Javascript IE9:脚本仅在调试器中工作,但在不调试时不工作,javascript,html,internet-explorer,browser,cross-browser,Javascript,Html,Internet Explorer,Browser,Cross Browser,我在Internet Explorer的兼容性方面遇到一些问题。我正在构建一个大量使用HTML5画布、CSS3和JavaScript的在线工具。该程序在除Internet Explorer之外的所有主要浏览器中都能正常工作 IE9切换到兼容模式,所以我设置 强制IE使用IE9标准处理页面。IE不再进入兼容模式,但脚本仍不能正常工作。绘制或拖动对象等一些基本功能可以正常工作,但仅“一半” 程序员在这种情况下做什么:启动调试器。这就是魔法发生的地方。只要我启动IE9开发工具(同时使用IE9浏览器

我在Internet Explorer的兼容性方面遇到一些问题。我正在构建一个大量使用HTML5画布、CSS3和JavaScript的在线工具。该程序在除Internet Explorer之外的所有主要浏览器中都能正常工作

IE9切换到兼容模式,所以我设置


强制IE使用IE9标准处理页面。IE不再进入兼容模式,但脚本仍不能正常工作。绘制或拖动对象等一些基本功能可以正常工作,但仅“一半”

程序员在这种情况下做什么:启动调试器。这就是魔法发生的地方。只要我启动IE9开发工具(同时使用IE9浏览器和文档模式),脚本就会正常工作。但是我应该如何调试一个脚本,它在调试条件下工作正常,在不调试时出错


目前,我不知道该怎么办。也许有人能给我一个提示?非常感谢

IE9不喜欢
console
调用,没有显示任何代码,我们只能猜测问题出在哪里。您可以删除任何
console.log
消息,或在调用任何代码之前使用此代码段:

(!window.console) console = {log: function() {}};

代码中有控制台行吗?是否有任何错误消息?IE倾向于在
console.log()
(和其他控制台方法)上崩溃,除非调试器处于打开状态-您的代码是否使用此类方法?您不使用
IE=edge
的原因是什么?IE10上应用程序的任何用户都将被迫返回IE9,这可能会导致detrimental@nnnnnn仅在IE8及以下版本中,as
控制台
未标准化。IE9+将乐于使用这些错误可能的原因是计时器通过setInterval/setTimeout进行异步调用,或者异步函数使用不当;在这种情况下,调试器下和clean runtime中的代码执行顺序可能不同。是。如果未打开开发工具,则页面上的
控制台
不可用,问题已解决。有一些console.log()语句。这些在不调试时似乎会崩溃。当我删除console.log()时,问题就消失了,假设脚本停止在console.log()语句中,脚本的“半工作”可以得到完美的解释。
(!window.console) console = {log: function() {}};