我从服务器获取原始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);
}
答案 0 :(得分:4)
您可以将document.body.innerHTML
与<script>
html字符串连接,获取.textContent
中script
的{{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!");'