簡體   English   中英

從 HTML 文本動態加載 JavaScript?

[英]Load JavaScript from HTML text dynamically?

我有一個模塊化的單頁 html,它基於各種不重要的屬性動態加載內容 html。 除了未加載腳本之外,下面的代碼效果很好。 我在動態加載 function 中有一個插入腳本的位置,但找不到任何此類加載的示例。 一切都假定一個 src 文件,但是我知道您可以使用 element.text 執行以下操作,但不確定如何從 html 文本中加載它。

請注意,我找到的所有引用都是通過 an.src 而不是我需要的.text 加載的。

function dynamicLoad(elem, sourceCode) {
        // load html not the issue        
        elem.innerHTML = sourceCode;
        // load JS -- this is with solution ---
        var doc = document.implementation.createHTMLDocument(); // Sandbox
        doc.body.innerHTML = sourceCode; // Parse HTML properly
 // --- This is the solution below, will load all scripts found    
        [].map.call(doc.getElementsByTagName('script'), function(el) {       
          var e = document.createElement('script');
          e.text = el.textContent;
          document.body.appendChild(e);        
        }
  }

參考我對這個答案的評論,我不知道這是否真的是你正在尋找的,但我希望它會有所幫助!

 var loadedScript = "alert('Eval is working;')"; function evalScript() { return eval(loadedScript); }
 <button onclick="evalScript()">Eval script</button>

答案發布在上面的內聯代碼中,但這里是:

// Insert JS 
var doc = document.implementation.createHTMLDocument(); // Sandbox
doc.body.innerHTML = data; // Parse HTML properly
[].map.call(doc.getElementsByTagName('script'), function(el) {       
  var e = document.createElement('script');
  e.text = el.textContent;
  document.body.appendChild(e);        
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM