首頁 > web前端 > js教程 > 使用innerHTML後如何保證內嵌腳本執行?

使用innerHTML後如何保證內嵌腳本執行?

Linda Hamilton
發布: 2024-12-31 08:21:10
原創
410 人瀏覽過

How to Guarantee Inline Script Execution After Using innerHTML?

使用innerHTML執行內嵌腳本的技術

使用innerHTML將腳本插入網頁有其限制。雖然腳本可能出現在 DOM 中,但它通常無法自動執行。若要解決此問題並在插入時啟用腳本執行,可以採用某些方法。

方法:遞歸替換腳本

此方法涉及將每個內聯腳本元素替換為可執行對應項。以下程式碼片段示範了實作:

function nodeScriptReplace(node) {
  if (nodeScriptIs(node) === true) {
    node.parentNode.replaceChild(nodeScriptClone(node), node);
  } else {
    var i = -1,
      children = node.childNodes;
    while (++i < children.length) {
      nodeScriptReplace(children[i]);
    }
  }

  return node;
}

function nodeScriptClone(node) {
  var script = document.createElement("script");
  script.text = node.innerHTML;

  var i = -1,
    attrs = node.attributes,
    attr;
  while (++i < attrs.length) {
    script.setAttribute((attr = attrs[i]).name, attr.value);
  }
  return script;
}

function nodeScriptIs(node) {
  return node.tagName === 'SCRIPT';
}
登入後複製

用法範例:

nodeScriptReplace(document.getElementsByTagName("body")[0]);
登入後複製

此方法遞歸歷DOM 樹,辨識內聯腳本元素並將其替換為可執行的,請確保腳本按預期執行。

以上是使用innerHTML後如何保證內嵌腳本執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板