[英]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.