如何在没有jQuery的情况下将原始JavaScript标记附加到document.body



我从服务器上得到一个原始JavaScript标记:

"<script>alert('hi');</script>"

现在,我需要将它附加到<body>,以便它激发。我不能简单地创建一个新的脚本元素,因为这个字符串已经包含了<script>部分。有类似的东西吗

child = document.createElementFromHTML("<script>alert('hi');</script>");
document.body.appendChild(child)

谢谢你的帮助。

编辑

这就是为什么它不是复制的,大厅监视器:

如果您将div的内部html设置为脚本,它将不会启动。我需要将仅从文本生成的元素附加到正文中。

编辑2

最终解决方案:

window.onload = function() {
document.body.innerHTML += "<script>alert('hi');</script>";
var script = document.scripts[document.scripts.length - 1];
var s = document.createElement("script");
s.textContent = script.textContent;
document.body.removeChild(script);
document.body.appendChild(s);
}

您可以将document.body.innerHTML<script>html字符串连接,在document中获取最后一个script.textContent,创建script元素,将script元素.textContent设置为从连接的html<script>字符串中检索到的值,删除最后的<script>,将新的<script>附加到document.body

<script>
document.body.innerHTML += "<script>alert('hi');</script>");
var script = document.scripts[document.scripts.length - 1];
var s = document.createElement("script");
s.textContent = script.textContent;
document.body.removeChild(script);
document.body.appendChild(s);
</script>

通过这种方式,您可以在HTML 中插入<script>标记

var script = document.body.appendChild(document.createElement('script'));
script.text = 'alert("Hi!");'

最新更新