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

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

Vanilla JS ready() 函數——什么是 `document.

Vanilla JS ready() 函數——什么是 `document.

蠱毒傳說 2023-03-10 15:24:52
我知道以前曾在這里問過類似的問題,但我找不到任何提出或回答這個特定問題的問題。我想要一個盡可能簡單的純 JavaScript 就緒函數,它在頁面完全加載時運行,類似于 jQuery$(document).ready()函數。我一直在尋找這個例子:if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {    // Document already fully loaded    ready();} else {    // Add event listener for DOMContentLoaded (fires when document is fully loaded)    document.addEventListener("DOMContentLoaded", ready);}function ready() {    // Handler here}但是給出這個例子的網站總是談論對舊版本 IE 的支持,我不需要那個。我只想支持現代瀏覽器(Chromium Edge、Chrome、Firefox、Opera 和 Safari),并希望找到一個更簡單的解決方案,尤其是關于document.readyState !== "loading" && !document.documentElement.doScroll. 我似乎找不到太多關于 的信息document.documentElement.doScroll,至少不是來自像 MDN 這樣的可靠來源,所以我不知道它到底做了什么,或者刪除它是否會導致 ready 函數在某些邊緣情況下中斷。我想我要問的是:document.readyState !== "loading" && !document.documentElement.doScroll從示例代碼中刪除是否安全,當您只關心當前的主要瀏覽器(上面列出的)時,現在是否有更好的方法來執行此操作?
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

看起來doScroll是 IE 的東西。不過readyState檢查很有用,因為如果 DOMContentLoaded 事件已經發生,它就不會觸發。因此,如果您不需要 IE 支持,我會說您可以刪除 doScroll 檢查,留下:


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

    // Document already fully loaded

    ready();

} else {

    // Add event listener for DOMContentLoaded (fires when document is fully loaded)

    document.addEventListener("DOMContentLoaded", ready);

}


function ready() {

    // Handler here

}


查看完整回答
反對 回復 2023-03-10
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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