用IE 浏览网页,有时候会看到弹出对话框 “Internet Explorer无法打开站点……已终止操作” (如下图)。
没有错误信息,让人百思不得其解。 这篇IE的blog 对这个问题有详细的讲解。
这个错误其实是由IE的 HTML Parser (解析器) 抛出的,发生在如下条件
- HTML 网页正在被解析
- 脚本程序Javascript/VBsciprt 正在被执行
- 脚本程序试图在HTML DOM树里未关闭的父/祖先节点添加/删除 一个元素。
以下就是触发以上3个条件的代码示例:
- <html>
- <body>
- <div>
- <script type="text/javascript">
- var newElem = document.createElement('foo');
- document.body.appendChild(newElem);
- </script>
- </div>
- </body>
- </html>
更多类似的代码示例,可以在 http://support.microsoft.com/default.aspx/kb/927917 找到。
值得一提的是, IE8去掉了这个对话框, 改在状态栏里面提示脚本程序错误,使用户体验好很多。