javascript - 如何在不使用 jQuery 的情况下将原始 JavaScript 标签附加到 document.body

标签 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);
}

最佳答案

您可以连接 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>

关于javascript - 如何在不使用 jQuery 的情况下将原始 JavaScript 标签附加到 document.body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42171278/

相关文章:

特定容器内的 JavaScript getElementsByTagName

javascript - js - appendChild 方法破坏整个页面

xml - AppendChild到XML的特定位置

javascript - Chart.js 闪烁

Javascript 根据另一个下拉列表的另一个值从数组中填充下拉列表 :

javascript - 如何仅使用基本的 javascript 和 DOM 操作来切换单个 <li> 元素以更改其样式?

javascript - 查找隐藏元素并将其存储在数组中

javascript - 如何在 javascript 中更改 "html"本身的 CSS 属性?

javascript - 如何在创建之前定义节点的行为?

javascript - onclick 函数未在创建的 DOM 元素的 externalHTML 中注册