2010-11-24 66 views
4

我在寫bookmarklet javascript。這裏的問題是它可以在用戶完成加載之前和之後調用。我想確保只有在頁面加載完成後才能運行sript。怎麼做?檢查(從書籤)是否加載頁面?

+0

到目前爲止,沒有人理解這個問題。 **他想知道文檔是否已經完成加載。** – SLaks 2010-11-24 18:59:25

+0

我同意,請參閱我的回答... – Greg 2010-11-24 19:15:37

+1

哈哈,你好,謝謝你的下載...當文件已經準備好了完成加載......你還會認爲它做了什麼...做茶? – CrazyDart 2010-11-24 19:16:46

回答

3

檢查文檔是否已加載的一種方法是檢查document.readyState屬性。 IE,Firefox 3.6+,Webkit和Opera支持它。

if (document.readyState === "complete") { 
    // do sth 
} 

另一件事是,如果你想等待文檔加載。在這種情況下,您必須收聽一些事件,如文檔上的DOMContentLoaded,窗口上的加載或文檔上的readyStateChange。

0
<body onload="start()"> 
</body> 

在函數啓動時,DOM保證被加載。

2

將函數掛鉤到文檔的就緒/加載函數可確保無處可存在於代碼之前可以在DOM加載之前執行

<html> 
<body onload="documentLoad()"> 
    <script type="text/javascript"> 

    function documentLoad() { 
     alert("Document is ready now."); 
    } 

    </script> 
</body> 
</html> 

如果你想使用jQuery,你可以使用一個非常短的方法將所有代碼附加到ready函數。

$(document).ready(function() { 
    // All code in here - will trigger when DOM is loaded. 
} 

這是一個甚至更短的使用jQuery實現相同的簡短方法。

$(function(){ 
    // All code in here - will trigger when DOM is loaded. 
}); 
0
var firstLoad = true; 
$(document).ready(function(){ 
    if (firstLoad){ 
     firstLoad=false; 
     //your code to run once 
    } 
}); 
0

這裏大多數答案回答如何將功能附加到文件準備功能,這是不是有什麼davidgale是問...

document對象有readyState一個屬性,該屬性將在加載完成後設置爲"complete"

<html> 
<body> 

    <script type="text/javascript"> 

    function someFunction() { 
     // Called various times throughout page's life. 

     if(document.readyState == "complete") { 
     // Perform DOM actions - will only attempt after DOM is loaded. 
     } 
    } 
    </script> 

</body> 
</html> 
相關問題