我正在尝试复制 <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 - 添加包含 <script> 的 dom 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35628650/