亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript - 如何檢測文檔是否已加載(IE 7 / Firefox 3)

Javascript - 如何檢測文檔是否已加載(IE 7 / Firefox 3)

MMTTMM 2019-08-01 14:35:59
Javascript - 如何檢測文檔是否已加載(IE 7 / Firefox 3)我想在文檔加載后調用函數,但文檔可能已經或可能尚未完成加載。如果它確實加載了,那么我可以調用該函數。如果它沒有加載,那么我可以附加一個事件監聽器。我無法在onload已經觸發后添加一個eventlistener,因為它不會被調用。那么如何檢查文檔是否已加載?我嘗試了下面的代碼,但它并不完全有用。有任何想法嗎?var body = document.getElementsByTagName('BODY')[0];// CONDITION DOES NOT WORKif (body && body.readyState == 'loaded') {     DoStuffFunction();} else {     // CODE BELOW WORKS     if (window.addEventListener) {           window.addEventListener('load', DoStuffFunction, false);     } else {         window.attachEvent('onload', DoStuffFunction);     }}
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

沒有必要使用galambalazs提到的所有代碼。在純JavaScript中使用跨瀏覽器的方式只是為了測試document.readyState

if (document.readyState === "complete") { init(); }

這也是jQuery如何做到的。

根據JavaScript的加載位置,可以在一個時間間隔內完成:

var readyStateCheckInterval = setInterval(function() {
    if (document.readyState === "complete") {
        clearInterval(readyStateCheckInterval);
        init();
    }}, 10);

實際上,document.readyState可以有三種狀態:

在文檔加載時返回“加載”,在完成解析但仍加載子資源時返回“交互”,并在加載后“完成”。- Mozilla Developer Network的document.readyState

因此,如果您只需要準備好DOM,請檢查document.readyState === "interactive"。如果您需要準備好整個頁面,包括圖像,請檢查document.readyState === "complete"。


查看完整回答
反對 回復 2019-08-01
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

您可能希望使用類似jQuery的東西,這使得JS編程更容易。

就像是:

$(document).ready(function(){
   // Your code here});

似乎做你想做的事。


查看完整回答
反對 回復 2019-08-01
  • 3 回答
  • 0 關注
  • 437 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號