【发布时间】:2011-12-13 21:37:21
【问题描述】:
当我将元素的 innerHTML 属性设置为包含脚本元素的字符串时,我在 IE 中遇到了一个奇怪的问题。
当 innerHTML 设置如下时会发生什么:
domEl.innerHTML = "<script type=\"text/javascript\">alert(\"hello world\");</script>"
alert(domEl.innerHTML);
警告框不显示任何文本,就好像脚本元素已被完全删除一样。此外,检查元素的 childNodes 集合还显示脚本元素不存在为domEl.childNodes.length = 0。
但是,如果您在脚本标记之前添加一些文本,如下所示:
domEl.innerHTML = "start text<script type=\"text/javascript\">alert(\"hello world\");</script>"
alert(domEl.innerHTML);
当显示警告框时,脚本元素就出现了。
为什么会发生这种情况,我该如何正确解决?这是IE中的错误吗?它在最新版本的 Chrome 和 Firefox 中运行良好。我为此使用 IE 8。
【问题讨论】:
标签: javascript internet-explorer innerhtml script-tag