我的网站正遭受操作中止错误 http://support.microsoft.com/kb/927917。我觉得奇怪的是,就我而言,错误只是有时会发生。该网站已经运行良好三个月了,然后今天开始出现这种情况,但并非每次都会出现这种情况。
发生这种情况的页面相当大,有很多第三方控件。我想要的是一个可以查明故障发生位置的工具。看来我能做的最好的事情就是找到操作中止后发生的第一个 javascript 错误;然而,这并没有多大帮助。此失败是因为 dom 的某个元素不可用,这是我所期望的,因为 IE 停止解析 HTML。
有人有任何想法或技巧来缩小范围吗?
Edit
我很欣赏解决该问题的其他方法;但是,我正在寻找一种方法来确定哪个脚本导致了问题。
最终编辑
切换到 IE8 后,我能够确定原因是 AjaxControl Toolkit 的模式弹出对话框。没有具体的方法来确定这一点,这令人失望,但调试器让我看到它失败的地方,这是非常一致的。由于控件中无法告诉它移动其初始化,因此我禁用了它,并使用脚本在我的文档加载事件处理程序中创建客户端控件。
这个问题不是控件的错,它之所以发生是因为弹出窗口的内容实际上是第二种形式。坦白说,我很惊讶它竟然有效。
您是否有任何正在操作 DOM 的 javascript,如案例所述http://support.microsoft.com/kb/927917#more_information http://support.microsoft.com/kb/927917#more_information ?
尝试将所有脚本块移动到页面的最底部,就在</body>
标签,并且不要尝试设置 body 标签本身的innerHTML 属性。
如果问题出在 DOM 完全构建之前执行的 javascript,请尝试将所有初始化调用移至仅在页面完全加载后运行的函数中。所以,而不是这样的:
<div class="myWidgetControl"/>
<script type="text/javascript">
initializeWidgets();
</script>
尝试这样的事情:
<div class="myWidgetControl"/>
<script type="text/javascript">
$(document).ready(
function () { initializeWidgets(); }
);
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)