除非引入延迟,否则加载脚本时IE 10会崩溃

时间:2015-03-24 08:08:34

标签: internet-explorer-10

我最近了解到我正在处理的应用程序经常崩溃Internet Explorer 10 - 没有错误消息,只有Windows'“应用程序停止工作”。查看事件查看器显示我收集的是mshtml.dll中的空引用:

Faulting application name: iexplore.exe, version: 10.0.9200.17267, time stamp: 0x54e7f156
Faulting module name: MSHTML.dll, version: 10.0.9200.17267, time stamp: 0x54e803bf
Exception code: 0xc0000005
Fault offset: 0x004f9b17
Faulting process id: 0xeec
Faulting application start time: 0x01d0657e1d8a29f6
Faulting application path: C:\Program Files\Internet Explorer\iexplore.exe
Faulting module path: C:\Windows\system32\MSHTML.dll

我发现在页面上加载第一个脚本时会发生这种情况,即jQuery。我尝试了两个不同的版本:1.10.2和1.11.2,结果相同。

事实证明,在加载jQuery(以及其余脚本)之前引入一个小延迟解决了这个问题。我在所有其他脚本之前添加了这个代码段:

if (navigator.userAgent.indexOf('MSIE 10') >= 0) {
    var t = new Date().getTime();
    while (new Date().getTime() - t < 300);
}

这似乎解决了这个问题。然而,它显然非常不优雅,我仍然不知道实际问题是什么。

有没有人经历过类似的事情,是否有更好的解决方案?

0 个答案:

没有答案