Internet Explorer 无法打开 Internet 站点

前不久遇到的问题,收到反馈说我负责的 portal 可能出现“Internet Explorer 无法打开 Internet 站点 http://.com. 操作已中止”的提示。查了下是因为 js 操作浏览器还没有渲染完的 html 标签,就对该标签进行 appendChild 或者修改 innerHTML 的操作。 其实之前在访问 Google 的时候也有出现过类似情况,不过很少,一直以为是浏览器问题呢。

出现此问题的原因子容器 HTML 元素包含试图修改子容器的父容器元素的脚本。 脚本试图使用 innerHTML 方法或 appendChild 方法修改父容器元素。

是例如如果 DIV 元素是在 BODY 元素中的子容器,并在 DIV 元素中的一个 SCRIPT 块尝试修改 DIV 元素的父容器的 BODY 元素,可能会出现此问题。

解决方法

要变通解决此问题,请只修改的块关闭容器,或者,修改仅脚本的立即的容器元素编写脚本。 为此,使用一个占位符,可以关闭目标容器,或可以将脚本块移动到您要修改的容器。

本例中, DIV 元素是一个子容器元素。 SCRIPT 块在 DIV 元素内的尝试修改 BODY 元素。 BODY 元素是关闭的父容器的 DIV 元素。

可以通过 修改父元素、修改一个已关闭的容器元素等方式解决。

猜你喜欢

转载自san-yun.iteye.com/blog/901051