首頁 web前端 js教程 什麼是javascript事件模型

什麼是javascript事件模型

Jul 16, 2021 am 11:55 AM
ie javascript

在各種瀏覽器中存在三種事件模型:原始事件模型,DOM2事件模型和IE事件模型。其中原始的事件模型被所有瀏覽器所支援。而DOM2定義的事件模型目前由除了IE以外的所有主流瀏覽器支援。

什麼是javascript事件模型

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

一、原始事件模型

其事件類型:分為"輸入事件(如onclicki)"和"語意事件(如onsubmit)"

事件程序的註冊可以以下幾種方式:

1、JS程式碼作為HTML性質值

<input type="button" value="Press me" onclick="alert(&#39;thanks&#39;);"
登入後複製

2、事件處理程序作為JS屬性

附註:文檔中的每個HTML元素在文檔樹中都有一個相應的JS對象,這個JS對象的屬性對應於那個HTML元素的性質,無論作為HTML性質的JS代碼還是作為JS屬性的時間處理程序,其本身的屬性都是函數"function".

<form name="f1">

<input name="b1" type="button" value="Press Me"/>

</form>
登入後複製

第一種賦值方式:

document.f1.b1.onclick=function(){alert(&#39;thanks&#39;);};
登入後複製

第二種賦值方式:

function plead(){window.status="Please Press Me!";}

document.f1.bi.onmouseover=plead;
登入後複製

作為JS屬性的事件處理程序可以用JS屬性明確呼叫

document.myfrom.onsubmit();
登入後複製

事件處理程序可以回傳fale來阻止瀏覽器執行事件的預設動作,常用的如對onsubmit的操作。例外是對超連結mouseover的window.status顯示事件的阻擋,是返回true.例如:

<a href="help.htm" onmouseover="window.status=&#39;help&#39;;return true;">help</a>
登入後複製

二、DOM2事件模型

##這個模型參考了IE的氣泡模型而製定的,它是由w3c制定的規範.在原始模型中事件一旦發生就直接調用事件句柄,沒有其它的事件傳播過程.而在DOM2模型中事件有一個特殊的傳播過程,分為三個階段:


(1)capturing phase:事件被從document一直向下傳播到目標元素,在這過程中如果有哪個祖先元素對該事件感興趣可以註冊自己的處理函數.

(2)target phase:事件到達目標元素,執行目標元素的事件處理函數.


(3)bubbling phase:事件從目標元素上升一直到達document ,雖然所有的事件類型都會經歷captruing phase階段但是只有部分事件會經歷bubbling phase階段,例如submit事件就不會被上浮.

在整個的事件傳播過程中可以調用event.stopPropagation()來停止事件的傳播,呼叫preventDefault()來阻止瀏覽器的預設行為.

addEventListener("eventType","handler","true!false");

removeEventListner("eventType","handler","true!false");
登入後複製

#三、IE模型

IE模型也提供了一個event物件封裝了事件的詳細資料,但是IE不把該物件傳入事件處理函數,由於在任意時刻只會存在一個事件,所以IE把它作為全局物件window的一個屬性,IE中的事件傳播模式對應於DOM2的第二和第三階段,先執目標元素的處理函數,然後向上傳播到達document,ie中只能能捕捉滑鼠事件,而DOM2中可以捕捉所有的事件,IE中註冊和刪除事件處理函數的方法也不同於DOM2 .

事件處理函數的註冊和刪除是透過元素的attachEvent("eventType","handler") and detachEvent("eventType","handler" ),與dom2不同的是eventType有on前綴

特點:

1、傳播過程只起泡,不捕捉。起泡中斷方法:

window.ecent.cancelBubble=true;

2、Event物件不是事件處理程序的函數參數,而是window的全域變數。

3、事件註冊函數:attachEvent()與反註冊:detachEvent().  

四、Netscape4事件模型

由於Netscape好像已經完全停止開發,所以就不詳述了,簡單的說:就是只捕捉不起泡。

【推薦學習:

javascript高階教學#

以上是什麼是javascript事件模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統 如何利用JavaScript和WebSocket實現即時線上點餐系統 Dec 17, 2023 pm 12:09 PM

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統 如何使用WebSocket和JavaScript實現線上預約系統 Dec 17, 2023 am 09:39 AM

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

javascript如何使用insertBefore javascript如何使用insertBefore Nov 24, 2023 am 11:56 AM

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節點。這個方法需要兩個參數:要插入的新節點和參考節點(即新節點將要插入的位置的節點)。

win11無法使用ie11瀏覽器怎麼辦? (win11用不了ie瀏覽器) win11無法使用ie11瀏覽器怎麼辦? (win11用不了ie瀏覽器) Feb 10, 2024 am 10:30 AM

越來越多的用戶開始升級win11系統,由於每個用戶的使用習慣不同,還是有不少用戶在使用ie11瀏覽器,那麼win11系統用不了ie瀏覽器,該怎麼辦呢? windows11還支援ie11嗎?下面就來看看解決方法。 win11無法使用ie11瀏覽器的解決方法1、先右鍵開始選單,選擇「命令提示字元(管理員)」開啟。 2.開啟之後,直接輸入“Netshwinsockreset”,回車確定。 3.確定之後再輸入「netshadvfirewallreset&rdqu

See all articles