我有一个通过Ajax握手工作的Web应用程序,通过向服务器应用程序发送ini命令,在原始页面加载完成时启动握手过程。此传输被编码为$(document).ready(...)链中的最后一次调用。
在所有浏览器上都像魅力一样,除了 IE9(当然)。 IE10很好。搜索网络和SO会发现大量信息根本没用。
所以我想我打开开发人员控制台来检查是否有任何问题/错误被报告,因为我的所有Ajax调用都包含在try / catch中,其中console.log输出错误。而现在,有趣的是,只要开发者控制台打开,它就可以完美运行吗?
那么似乎是某种时间问题。我讨厌让我的现成链延迟使用window.setTimeout()quirk。
已经测试过:
$(document).ready(function() {
$(document).delay(500).doInitSequence(...)
}
但这并没有改变任何事情。
答案 0 :(得分:2)
我之前已经搞砸了。除非开发者控制台是打开的,否则很容易忘记IE中不存在控制台对象。你需要做的就是放入
var console = console || { log: function() {} };
位于脚本的顶部。如果您正在使用任何其他控制台功能,则必须将它们放入其中。
答案 1 :(得分:0)
您应该禁用Internet Explorer浏览器的console
功能。
您可以使用条件HTML注释并覆盖控制台功能来执行此操作:
<!--[if IE]>
<script type="text/javascript">
var console = { log: function() {} };
</script>
<![endif]-->