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

时间:2017-02-11 01:42:31

标签: javascript dom appendchild

我从服务器获取原始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);
}

2 个答案:

答案 0 :(得分:4)

您可以将document.body.innerHTML<script> html字符串连接,获取.textContentscript的{​​{1}},创建document元素,设置{ {1}}元素script从联接的script .textContent字符串中检索到的值,删除上一个html,将新<script>追加到<script>。< / p>

<script>

答案 1 :(得分:1)

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

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