2011-11-25 95 views
1

我遇到了問題,當我想在html標記中使用document.getElementById();時。 例如=如何在javascript中優先執行dom

<html> 
<head> 
<script type="js"> //note this example is not found so browser is take time to execution 
<script type="js"> //note this example is not found so browser is take time to execution 
<script type="js"> //note this example is not found so browser is take time to execution 
<script type="js"> //note this example is not found so browser is take time to execution 
</head> 
<body> 
<div> ... 
<div id="test"> 
</div> 
</body> 
</html> 

我的問題是如何執行document.getElementById("test");無需等待加載腳本沒有發現?,可以使更多的time.how我可以修復this.thanks你的答案。

注:解決不刪除或修改腳本到找到的目錄。 以防萬一,如果腳本沒有找到。

回答

1

defer="defer"添加到那些您希望推遲執行的<script />標籤。

注:因爲我的瀏覽器也執行腳本沒有找到推遲對IE和Firefox的新版本和Chrome

+0

任何其他建議的作品。我只想優先'document.getElementById(「test」);'是第一次執行,我可以得到innerHTML。 – viyancs

+0

將你的JS文件加載到頁面底部總是更好。看到爲什麼它最好加載在最後:http://stackoverflow.com/questions/1638670/javascript-at-bottom-top-of-web-page。請注意,沒有'',它應該是''script type =「text/javascript」src =「path/to/your/js/file」>' –

+0

ah ya我已更新。 – viyancs

1

嘗試使用headJS這將加載您的腳本異步和document.ready後。

另一種選擇是將srctype移動到文件的底部,以便最後加載它們。但我不認爲document.ready將被執行,直到該瀏覽器加載這些文件

1

假設<srctype>應該是<script>,那你要問的是你可以做的被引用不存在的腳本是什麼從一個頁面中,唯一可能的答案是您切換到動態腳本加載方法,如LABjs或其他,或者,當然,停止包含引用不存在的腳本的腳本標記。

瀏覽器將始終嘗試加載並運行<script>未標記爲「異步」的標記,當然這是一個相當新的屬性,即使支持它的瀏覽器的行爲也不完全一致。