我試圖發現不管是正在執行同步包括了當前JavaScript文件(通過楷書標籤)如何檢測是否被列入你的Javascript同步或異步
<script src="myscript.js"></script>
或異步通過插入腳本元素到DOM編程,像
var script = document.createElement('script')
script.src = 'myscript.js'
document.body.appendChild(script)
,因此是否document.write
可以使用或不使用。我已經想出了一個瘋狂的解決方案,測試document.write
是否有效,請參閱this gist。
基本上,它通過使用document.write
寫出一個元素 - 我選擇了一個空的腳本標記。然後它查詢DOM以確定該腳本元素是否已成功寫出。如果是 - 腳本必須同步包含,否則包含異步。
此解決方案適用於目前爲止我測試過的所有瀏覽器(所有主要的瀏覽器,包括IE7 +),Opera除外。
問題是:有沒有更好的解決方案?
注意:我也試過檢查document.readyState
,但這在IE中似乎沒有幫助。
另請注意:我不需要document.write
是邪惡的講座。我知道。
更新:原來,除了沒有工作的歌劇,我的技術也靠不住在IE和其他瀏覽器某些情況下 - document.write
可能會或可能不會因時間或緩存的情況下工作。 spec似乎同樣多。
你確定你不需要演講?我已準備好給你一個...:P – Domenic 2012-02-23 04:35:04