Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产高清在线精品一区a,91视频最新网站,日韩一级片在线播放

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          document事件有哪些?

          document事件有哪些?

          document` 對象在瀏覽器中有許多事件可以觸發,這些事件允許開發者在特定的時刻對 DOM 進行操作或響應用戶的交互。以下是一些常見的 `document` 事件:


          ### 1. `DOMContentLoaded`


          - **描述**: 當初始 HTML 文檔被完全加載和解析完成后,`DOMContentLoaded` 事件會被觸發,而無需等待樣式表、圖像和子框架的完全加載。

          - **用途**: 通常用于在文檔加載完成后立即運行初始化代碼。


          ```javascript

          document.addEventListener('DOMContentLoaded', function() {

          console.log('DOM fully loaded and parsed');

          });

          ```


          ### 2. `load`


          - **描述**: 當整個頁面,包括所有相關資源(如圖片、樣式表、子框架)加載完成時觸發。

          - **用途**: 適用于需要確保所有資源都加載完成后再執行的代碼。


          ```javascript

          window.addEventListener('load', function() {

          console.log('All resources finished loading');

          });

          ```


          ### 3. `unload`


          - **描述**: 當用戶離開頁面時(例如,關閉標簽頁、刷新頁面或導航到其他頁面)觸發。

          - **用途**: 用于清理操作或保存狀態。


          ```javascript

          window.addEventListener('unload', function() {

          console.log('Page is unloading');

          });

          ```


          ### 4. `beforeunload`


          - **描述**: 在頁面即將卸載之前觸發。可以用來提示用戶是否真的要離開當前頁面。

          - **用途**: 用于阻止或提示用戶在離開頁面時保存未保存的數據。


          ```javascript

          window.addEventListener('beforeunload', function(event) {

          event.preventDefault();

          event.returnValue='';

          });

          ```


          ### 5. `focus` 和 `blur`


          - **描述**: `focus` 在文檔或其子元素獲得焦點時觸發,`blur` 在失去焦點時觸發。

          - **用途**: 用于管理焦點狀態,例如在用戶輸入時高亮顯示當前輸入元素。


          ```javascript

          document.addEventListener('focus', function() {

          console.log('Document focused');

          }, true);


          document.addEventListener('blur', function() {

          console.log('Document blurred');

          }, true);

          ```


          ### 6. `click`


          - **描述**: 當用戶在文檔中點擊某個元素時觸發。

          - **用途**: 用于處理用戶點擊事件。


          ```javascript

          document.addEventListener('click', function(event) {

          console.log('Document clicked');

          });

          ```


          ### 7. `visibilitychange`


          - **描述**: 當文檔的可見性狀態改變時觸發(例如,切換到其他標簽頁)。

          - **用途**: 用于優化資源使用或暫停不必要的活動。


          ```javascript

          document.addEventListener('visibilitychange', function() {

          if (document.visibilityState==='hidden') {

          console.log('Document is now hidden');

          } else {

          console.log('Document is now visible');

          }

          });

          ```


          ### 8. `readystatechange`


          - **描述**: 當文檔的加載狀態(`loading`, `interactive`, `complete`)改變時觸發。

          - **用途**: 用于監控文檔加載的不同階段。


          ```javascript

          document.addEventListener('readystatechange', function() {

          console.log('Ready state changed:', document.readyState);

          });

          ```


          這些事件提供了許多機會來響應用戶交互和文檔狀態的變化,使得開發者能夠創建更動態和響應式的頁面。


          我的文章可能還有不足之處,如有不同意見,請留言討論。

          前端開發中,我們經常需要知道網頁的DOM(文檔對象模型)是否已經加載完畢。對于初學者來說,這可能聽起來有些復雜,但其實我們可以通過簡單的JavaScript代碼來實現這一目標,而不需要依賴任何框架或庫。本文將帶你一步步了解如何實現這一點。

          什么是DOM?

          在講具體方法之前,我們先來了解一下什么是DOM。DOM(文檔對象模型)是網頁的結構化表示,它將HTML文檔表示為一個樹形結構。瀏覽器會解析HTML并生成DOM樹,我們可以使用JavaScript對這個DOM樹進行操作,從而改變網頁的內容和樣式。

          檢查DOM是否準備好的方法

          要檢查DOM是否準備好,我們主要使用兩個事件:DOMContentLoadedload。它們的區別在于:

          • DOMContentLoaded事件在初始的HTML被完全加載和解析完成后觸發,但不等待樣式表、圖片等資源加載。
          • load事件在頁面所有資源(包括樣式表、圖片等)加載完成后觸發。

          我們可以使用這兩個事件來確定頁面的加載狀態,并結合document.readyState屬性來判斷DOM是否已準備好。

          具體代碼實現

          下面是具體的代碼示例:

          window.addEventListener("DOMContentLoaded", ()=> {
            if (document.readyState==="complete") {
              console.log('DOM已完全加載');
            } else if (document.readyState==="interactive") {
              console.log('DOM已準備好,但資源仍在加載');
            }
          });
          
          window.addEventListener("load", ()=> {
            if (document.readyState==="complete") {
              console.log('所有資源已加載完成');
            } else if (document.readyState==="interactive") {
              console.log('DOM已準備好,但資源仍在加載');
            }
          });

          在這段代碼中,我們使用了window.addEventListener來監聽DOMContentLoadedload事件。當這些事件觸發時,會執行相應的回調函數。在回調函數中,我們檢查document.readyState屬性的值:

          • 如果值是'complete',表示DOM已經完全加載,所有資源也已經加載完成。
          • 如果值是'interactive',表示DOM已準備好,但一些資源(如圖片、框架等)仍在加載中。

          為什么要這樣做?

          了解DOM的加載狀態對于前端開發非常重要。例如,如果你想在DOM完全加載后執行一些初始化操作,就需要確保這些操作不會在DOM未準備好的情況下執行。通過監聽這些事件,你可以確保在合適的時機執行相應的代碼,提高代碼的穩定性和性能。

          結束

          在不使用任何JavaScript框架或庫的情況下,我們可以通過監聽DOMContentLoadedload事件,以及檢查document.readyState屬性的值,來確定DOM是否已準備好。這種方法簡單高效,非常適合初學者學習和使用。


          主站蜘蛛池模板: 国产乱码一区二区三区四| 一区二区三区内射美女毛片| 久久久精品日本一区二区三区| 久久精品国产一区二区三| 国产aⅴ一区二区三区| 久久久久人妻一区精品色| 天天看高清无码一区二区三区| 日本在线视频一区二区| 日韩免费无码一区二区三区| 久久精品国产一区二区三区不卡| 国产91精品一区| 国产视频一区在线播放| 亚洲av综合av一区二区三区| 亚洲一区二区三区在线网站| 日韩人妻一区二区三区蜜桃视频| 国产日韩高清一区二区三区| 日本一区二区三区不卡视频中文字幕| 国产欧美色一区二区三区| 精品国产福利一区二区| 老熟女高潮一区二区三区| 久久亚洲国产精品一区二区| 国产一区二区三区在线观看精品| 色精品一区二区三区| 视频一区二区三区人妻系列| 日本强伦姧人妻一区二区| 国产AV天堂无码一区二区三区 | 国产成人久久精品麻豆一区| 国产在线一区二区杨幂| 国产在线精品一区二区在线看| 精品国产日韩一区三区| 日本一区高清视频| 国产一区二区三区露脸| 日韩AV在线不卡一区二区三区 | 久久免费精品一区二区| 久久精品道一区二区三区| 亚洲综合一区二区| 亚洲AV成人精品一区二区三区| 日本一区二三区好的精华液| 国产一区二区三区不卡在线观看| 亚洲av高清在线观看一区二区| 国产熟女一区二区三区四区五区 |