javascript - 添加包含 <script> 的 dom 元素

标签 javascript dom

我正在尝试复制 <div>包含 <script> 的元素。问题是,当我将其附加到 DOM 中时,包含的脚本不会被执行。

如何解决?

最佳答案

这里描述了它不起作用的原因:Why don't cloneNode tags execute? .

您可以通过搜索所有 script 标记并将它们替换为新标记来解决该问题,这样它将在插入时执行。

  function cloneAndRenewScripts(element) {

    var dupNode = element.cloneNode(true);


    var scripts = dupNode.getElementsByTagName('script');
    for( var i=0; i<scripts.length ; i++ ) {
      var tmp = document.createElement('script');
      tmp.textContent = scripts[i].textContent;

      scripts[i].parentNode.replaceChild(tmp, scripts[i]);
    }

    return dupNode;
  }

这里有一个 jsfiddle demo

关于javascript - 添加包含 &lt;script&gt; 的 dom 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35628650/

相关文章:

javascript - 允许表格单元格内容水平扩展

javascript - "innerHTML += ..."与 "appendChild(txtNode)"

javascript - 是否普遍支持更改元素的 ID?

JavaScript 和 Fabric js : how to call object outside its function in this case?

javascript - 在段落标题中添加单引号和空格

javascript - 在 AngularJS 中如何确保数据在使用之前先加载?

javascript - Facebook 如何在不重新加载页面或不使用# 或的情况下更改浏览器地址栏中的 URL?

javascript - relatedObject 属性的用途

javascript - 我如何识别 JavaScript 文件已加载

javascript - Web 浏览器正在向我的 HTML 链接添加文本