document.body.innerHTML 在 IE 中剥离 JavaScript - bug

document.body.innerHTML strips javascript in IE - bug?

本文关键字:剥离 JavaScript bug IE body innerHTML document      更新时间:2023-09-26

我想解析标签,比如 document.body.innerHTML (见下文)。但是,尽管您可以在Chrome中执行此操作,但它在IE中不起作用。我必须让它在IE中工作,但这似乎是不可能的。有什么想法吗?

html = '<script> function myFunction() { alert(); } </script>AAA'
doc.body.innerHTML = html

AAA 存储在 doc.body.innerHTML 中

要快速复制问题,只需将下面的第一行添加到IE控制台窗口中,然后查看document.body.innerHTML中的内容,您会注意到它已被剥离。

我们使用一个 10 年前的文本编辑器,它只能在 IE 中工作,并且总是剥离 javascript,所以现在我已经发现了原因,并希望有人可以提供替代方案......谷歌搜索没有多大帮助

document.body.innerHTML = "<script> function myFunction() { alert(); } </script>AAA"

document.body.innerHTML

"AAA"

这将适用于任何浏览器以插入javascript:

var newScript = document.createElement('script');
var scriptTag = document.getElementsByTagName('script')[0];
newScript.text = "function myFunction() { alert(); }"
scriptTag.parentNode.insertBefore(newScript, scriptTag);
嗨,

尝试像下面的代码可能会帮助你。.

您需要对 标记使用转义字符

div.innerHTML = '<script> function myFunction() { alert(); } <'/script>AAA';