我想真正理解瀏覽器如何加載網頁的細節。爲什麼只有其中的一行javascript會在頁面加載時觸發?
我在連接到一個HTML文件.js文件兩個JavaScript語句:
d3.select("body").append("span").text("Hello, world!");
alert("huh?");
當我加載網頁,我看到一則快訊「呵呵。」所以這個「呃」聲明就會發生。
但是,「Hello,world」未附加到文檔正文。
如果我然後在控制檯中運行d3.select("body").append("span").text("Hello, world!")
,那麼它按預期執行 - 即,它增加了「你好,世界」的身體。
這是怎麼回事? alert("huh?")
在DOM中的window.onload事件之後觸發,是否正確?但d3.select...
不開火?
爲什麼這種差異?
如果導入你的腳本在'
'然後當代碼運行**沒有''但是** - 在繼續解析HTML文檔之前,瀏覽器在看到它時立即運行腳本代碼。特別是,瀏覽器不會等待「加載」事件,除非您專門安排將代碼放入函數並將其作爲事件的處理程序進行綁定。 – Pointy