2014-01-13 77 views
0

我對這種行爲有點困惑。 現在的情況是:我們有一個渲染文件。 The specifiaction表示,如果我們在呈現文檔時運行此方法,它將清除當前文檔。我在控制檯運行這個:爲什麼document.write不適用於動態加載的腳本?

document.write("Hi!") 

並獲得「Hi!」的空文件。文本。

但在動態和異步加載腳本相同的代碼做什麼:

var s = document.createElement('script'); 
s.src = "some/path/test.js" 
s.type = "text/javascript"; 
document.getElementsByTagName("head")[0].appendChild(s); 

test.js包含:

document.write("Hi!") 

我知道,我可以重新定義文件撰寫等。我只是詢問規範 - 在哪裏指定了這種行爲?

謝謝!

+0

這裏唯一有問題的是你使用的無效url,只需將'.../test.js'改爲'../ test.js' –

+0

不,那裏只是抽象的路徑:)問題不在那裏。 – gobwas

+0

我只是嘗試了完全相同的事情,並且在注入test.js之後,除了'Hi'之外,一切都被清除了。嘗試在test.js中添加一個簡單的警報,然後檢查它是否被調用。 –

回答

0

剛剛找到一些信息在mdn

,一定不要調用document.write()的從異步腳本。在Gecko 1.9.2中,調用document.write()具有不可預知的效果。在Gecko 2.0中,從異步腳本中調用document.write()不起作用(除了向錯誤控制檯輸出警告外)。

相關問題