繁体   English   中英

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

[英]How to append a raw JavaScript tag to document.body without jQuery

我从服务器获取了原始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字符串,得到.textContent最后的scriptdocument ,创建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!");' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM