回覆列表
  • 1 # 科技i關注

    jQuery判斷HTML頁面載入完畢用的不是

    window.onload

    $(document).ready是在頁面載入完畢時執行回撥而window.onload是在頁面全部載入完成時,包括一些資源比如圖片。

    所以window.onload比$(document).ready更延後一些。

    window.onload自然不必說,是瀏覽器自身支援的。

    但是$(document)

    .ready

    根據的是

    document.documentElement

    物件去判斷的。

    每次呼叫document.documentElement.scrollLeft方法如果此方法產生了異常,就說明scrollLeft無法執行,此時頁面還未載入完成,所以就用try塊包含這條語句,然後catch住,用setTimeout方法,重新執行一遍。直到scrollLeft可以執行時,就說明頁面載入完成了,此時再去回撥。

  • 2 # 公子邪o

    如何解決用js判斷頁面是否載入完成程式碼例項:示例如下,將下面資訊複製儲存成.html檔案即可瀏覽到效果...

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>解決js判斷頁面是否載入完成程式碼例項</title>

    <script type="text/javascript">

    var ttd = null;

    document.onreadystatechange = subSomething;//當頁面載入狀態改變的時候執行這個方法.

    function subSomething() {

    //if(document.readyState == "complete"&&window.parent.frames["框架名"].document.readyState == "complete") //當頁面載入狀態為完全結束時進入

    //myform.submit(); //這是你的操作

    if(document.readyState=="complete"){

    //alert("當前頁面已載入完成!");

    box = document.getElementById("box"); //當頁面載入完成後獲得該元素物件

    alert(box.value);

    }

    }

    </script>

    </head>

    <body>

    <div><input type="text" value="載入完成讀取該元素值"/></div>

    </body>

    </html>

  • 3 # 胖省筆記

    這個問題我之前剛看過。

    他用的不是window.onload

    $(document).ready是在頁面載入完畢時執行回撥

    而window.onload是在頁面全部載入完成時,包括一些資源比如圖片。

    所以window.onload比$(document).ready更延後一些。

    window.onload自然不必說,是瀏覽器自身支援的。

    但是$(document).ready我看了一下原始碼。

    他根據的是document.documentElement物件去判斷的。

    他每次呼叫document.documentElement.scrollLeft方法

    如果此方法產生了異常,就說明scrollLeft無法執行,此時頁面還未載入完成,

    所以他就用try塊包含這條語句,然後catch住,用setTimeout方法,重新執行一遍。

    直到scrollLeft可以執行時,就說明頁面載入完成了,此時再去回撥。

    很有意思。

  • 中秋節和大豐收的關聯?
  • 工作了之後的你,還在每天堅持學習英語嗎?有除了工作之外的動力嗎?