我想要做的是這個。無論我的腳本包含在頁面中,注入一些html。所以,在:注入HTML包含腳本的地方
<script src="http://demo.com/stats/stats.js"></script>
被添加到頁面,我可以輸出
<div id="stats"></div>
在頁面中的那個位置。
我想要做的是這個。無論我的腳本包含在頁面中,注入一些html。所以,在:注入HTML包含腳本的地方
<script src="http://demo.com/stats/stats.js"></script>
被添加到頁面,我可以輸出
<div id="stats"></div>
在頁面中的那個位置。
不要overthink問題:
document.write('<div id="stats"></div>');
如果腳本異步加載然而,這將失敗。
對於採用異步加載腳本有效的解決方案:
(function() {
function addHtml() {
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src !== 'http://demo.com/stats/stats.js') {
continue;
}
var div = document.createElement('div');
div.id = 'stats';
if (scripts[i].nextElementSibling) {
scripts[i].parentNode.insertBefore(div, scripts[i].nextElementSibling);
} else {
scripts[i].parentNode.appendChild(div);
}
}
}
if (document.readyState === "complete") {
addHtml();
} else {
document.addEventListener('DOMContentLoaded', addHtml, false);
}
})()
我真的不明白。除了覆蓋所有的html之外,它會做什麼?..並且你將在哪裏包含... – nicael 2015-03-30 20:16:20
當與內聯腳本一起使用時,document.write'不會覆蓋你的文檔。它將完全按照要求進行。 – 2015-03-30 20:18:01
@nicael [將一串文本寫入由document.open()打開的文檔流中。 注意:當document.write寫入文檔流時,在關閉的(加載的)文檔上調用document.write會自動調用document.open來清除文檔。](https://developer.mozilla.org/zh-cn/ US/docs/Web/API/Document/write)這意味着只要文檔當前處於打開狀態(例如,在初始頁面解析過程中)並且腳本同步執行(就像默認情況下那樣),腳本就會將它寫入任何地方標籤是。 – Shashank 2015-03-30 20:18:34
什麼?何時及如何包括在內;負載? – nicael 2015-03-30 20:13:16