HTML DOM 事件
HTML DOM 事件
HTML DOM 事件允許Javascript在HTML文檔元素中註冊不同事件處理程式。
事件通常與函數結合使用,函數不會在事件發生前被執行! (如用戶點擊按鈕)。
提示: 在 W3C 2 級 DOM 事件中規範了事件模型。
HTML DOM 事件
DOM: 指明使用的 DOM 屬性級別。
滑鼠事件
| 屬性 | 描述 | DOM |
|---|---|---|
| onclick | 當用戶點擊某個對象時調用的事件句柄。 | 2 |
| oncontextmenu | 在用戶點擊滑鼠右鍵打開上下文菜單時觸發 | |
| ondblclick | 當用戶雙擊某個對象時調用的事件句柄。 | 2 |
| onmousedown | 滑鼠按鈕被按下。 | 2 |
| onmouseenter | 當滑鼠指針移動到元素上時觸發。 | 2 |
| onmouseleave | 當滑鼠指針移出元素時觸發 | 2 |
| onmousemove | 滑鼠被移動。 | 2 |
| onmouseover | 滑鼠移到某元素之上。 | 2 |
| onmouseout | 滑鼠從某元素移開。 | 2 |
| onmouseup | 滑鼠按鍵被鬆開。 | 2 |
鍵盤事件
| 屬性 | 描述 | DOM |
|---|---|---|
| onkeydown | 某個鍵盤按鍵被按下。 | 2 |
| onkeypress | 某個鍵盤按鍵被按下並鬆開。 | 2 |
| onkeyup | 某個鍵盤按鍵被鬆開。 | 2 |
框架/對象(Frame/Object)事件
| 屬性 | 描述 | DOM |
|---|---|---|
| onabort | 圖像的加載被中斷。 ( <object>) | 2 |
| onbeforeunload | 該事件在即將離開頁面(刷新或關閉)時觸發 | 2 |
| onerror | 在加載文檔或圖像時發生錯誤。 ( <object>, <body>和 <frameset>) | |
| onhashchange | 該事件在當前 URL 的錨部分發生修改時觸發。 | |
| onload | 一張頁面或一幅圖像完成加載。 | 2 |
| onpageshow | 該事件在用戶訪問頁面時觸發 | |
| onpagehide | 該事件在用戶離開當前網頁跳轉到另外一個頁面時觸發 | |
| onresize | 窗口或框架被重新調整大小。 | 2 |
| onscroll | 當文檔被滾動時發生的事件。 | 2 |
| onunload | 用戶退出頁面。 ( <body> 和 <frameset>) | 2 |
表單事件
| 屬性 | 描述 | DOM |
|---|---|---|
| onblur | 元素失去焦點時觸發 | 2 |
| onchange | 該事件在表單元素的內容改變時觸發( <input>, <keygen>, <select>, 和 <textarea>) | 2 |
| onfocus | 元素獲取焦點時觸發 | 2 |
| onfocusin | 元素即將獲取焦點時觸發 | 2 |
| onfocusout | 元素即將失去焦點時觸發 | 2 |
| oninput | 元素獲取用戶輸入時觸發 | 3 |
| onreset | 表單重置時觸發 | 2 |
| onsearch | 用戶向搜索域輸入文本時觸發 ( <input="search">) | |
| onselect | 用戶選取文本時觸發 ( <input> 和 <textarea>) | 2 |
| onsubmit | 表單提交時觸發 | 2 |
剪貼板事件
| 屬性 | 描述 | DOM |
|---|---|---|
| oncopy | 該事件在用戶拷貝元素內容時觸發 | |
| oncut | 該事件在用戶剪切元素內容時觸發 | |
| onpaste | 該事件在用戶粘貼元素內容時觸發 |
列印事件
| 屬性 | 描述 | DOM |
|---|---|---|
| onafterprint | 該事件在頁面已經開始列印,或者列印窗口已經關閉時觸發 | |
| onbeforeprint | 該事件在頁面即將開始列印時觸發 |
拖動事件
| 事件 | 描述 | DOM |
|---|---|---|
| ondrag | 該事件在元素正在拖動時觸發 | |
| ondragend | 該事件在用戶完成元素的拖動時觸發 | |
| ondragenter | 該事件在拖動的元素進入放置目標時觸發 | |
| ondragleave | 該事件在拖動元素離開放置目標時觸發 | |
| ondragover | 該事件在拖動元素在放置目標上時觸發 | |
| ondragstart | 該事件在用戶開始拖動元素時觸發 | |
| ondrop | 該事件在拖動元素放置在目標區域時觸發 |
多媒體(Media)事件
| 事件 | 描述 | DOM |
|---|---|---|
| onabort | 事件在視頻/音頻(audio/video)終止加載時觸發。 | |
| oncanplay | 事件在用戶可以開始播放視頻/音頻(audio/video)時觸發。 | |
| oncanplaythrough | 事件在視頻/音頻(audio/video)可以正常播放且無需停頓和緩沖時觸發。 | |
| ondurationchange | 事件在視頻/音頻(audio/video)的時長髮生變化時觸發。 | |
| onemptied | 當期播放列表為空時觸發 | |
| onended | 事件在視頻/音頻(audio/video)播放結束時觸發。 | |
| onerror | 事件在視頻/音頻(audio/video)數據加載期間發生錯誤時觸發。 | |
| onloadeddata | 事件在流覽器加載視頻/音頻(audio/video)當前幀時觸發觸發。 | |
| onloadedmetadata | 事件在指定視頻/音頻(audio/video)的元數據加載後觸發。 | |
| onloadstart | 事件在流覽器開始尋找指定視頻/音頻(audio/video)觸發。 | |
| onpause | 事件在視頻/音頻(audio/video)暫停時觸發。 | |
| onplay | 事件在視頻/音頻(audio/video)開始播放時觸發。 | |
| onplaying | 事件在視頻/音頻(audio/video)暫停或者在緩衝後準備重新開始播放時觸發。 | |
| onprogress | 事件在流覽器下載指定的視頻/音頻(audio/video)時觸發。 | |
| onratechange | 事件在視頻/音頻(audio/video)的播放速度發送改變時觸發。 | |
| onseeked | 事件在用戶重新定位視頻/音頻(audio/video)的播放位置後觸發。 | |
| onseeking | 事件在用戶開始重新定位視頻/音頻(audio/video)時觸發。 | |
| onstalled | 事件在流覽器獲取媒體數據,但媒體數據不可用時觸發。 | |
| onsuspend | 事件在流覽器讀取媒體數據中止時觸發。 | |
| ontimeupdate | 事件在當前的播放位置發送改變時觸發。 | |
| onvolumechange | 事件在音量發生改變時觸發。 | |
| onwaiting | 事件在視頻由於要播放下一幀而需要緩衝時觸發。 |
動畫事件
| 事件 | 描述 | DOM |
|---|---|---|
| animationend | 該事件在 CSS 動畫結束播放時觸發 | |
| animationiteration | 該事件在 CSS 動畫重複播放時觸發 | |
| animationstart | 該事件在 CSS 動畫開始播放時觸發 |
過渡事件
| 事件 | 描述 | DOM |
|---|---|---|
| transitionend | 該事件在 CSS 完成過渡後觸發。 |
其他事件
| 事件 | 描述 | DOM |
|---|---|---|
| onmessage | 該事件通過或者從對象(WebSocket, Web Worker, Event Source 或者子 frame 或父窗口)接收到消息時觸發 | |
| onmousewheel | 已廢棄。 使用 onwheel 事件替代 | |
| ononline | 該事件在流覽器開始線上工作時觸發。 | |
| onoffline | 該事件在流覽器開始離線工作時觸發。 | |
| onpopstate | 該事件在窗口的流覽歷史(history 對象)發生改變時觸發。 | |
| onshow | 該事件當 <menu> 元素在上下文菜單顯示時觸發 | |
| onstorage | 該事件在 Web Storage(HTML 5 Web 存儲)更新時觸發 | |
| ontoggle | 該事件在用戶打開或關閉 <details> 元素時觸發 | |
| onwheel | 該事件在滑鼠滾輪在元素上下滾動時觸發 |
事件對象
常量
| 靜態變數 | 描述 | DOM |
|---|---|---|
| CAPTURING-PHASE | 當前事件階段為捕獲階段(1) | 1 |
| AT-TARGET | 當前事件是目標階段,在評估目標事件(1) | 2 |
| BUBBLING-PHASE | 當前的事件為冒泡階段 (3) | 3 |
屬性
| 屬性 | 描述 | DOM |
|---|---|---|
| bubbles | 返回布爾值,指示事件是否是起泡事件類型。 | 2 |
| cancelable | 返回布爾值,指示事件是否可擁可取消的默認動作。 | 2 |
| currentTarget | 返回其事件監聽器觸發該事件的元素。 | 2 |
| eventPhase | 返回事件傳播的當前階段。 | 2 |
| target | 返回觸發此事件的元素(事件的目標節點)。 | 2 |
| timeStamp | 返回事件生成的日期和時間。 | 2 |
| type | 返回當前 Event 對象表示的事件的名稱。 | 2 |
方法
| 方法 | 描述 | DOM |
|---|---|---|
| initEvent() | 初始化新創建的 Event 對象的屬性。 | 2 |
| preventDefault() | 通知流覽器不要執行與事件關聯的默認動作。 | 2 |
| stopPropagation() | 不再派發事件。 | 2 |
目標事件對象
方法
| 方法 | 描述 | DOM |
|---|---|---|
| addEventListener() | 允許在目標事件中註冊監聽事件(IE8 = attachEvent()) | 2 |
| dispatchEvent() | 允許發送事件到監聽器上 (IE8 = fireEvent()) | 2 |
| removeEventListener() | 運行一次註冊在事件目標上的監聽事件(IE8 = detachEvent()) | 2 |
事件監聽對象
方法
| 方法 | 描述 | DOM |
|---|---|---|
| handleEvent() | 把任意對象註冊為事件處理程式 | 2 |
文檔事件對象
方法
| 方法 | 描述 | DOM |
|---|---|---|
| createEvent() | 2 |
滑鼠/鍵盤事件對象
屬性
| 屬性 | 描述 | DOM |
|---|---|---|
| altKey | 返回當事件被觸發時,"ALT" 是否被按下。 | 2 |
| button | 返回當事件被觸發時,哪個滑鼠按鈕被點擊。 | 2 |
| clientX | 返回當事件被觸發時,滑鼠指針的水準座標。 | 2 |
| clientY | 返回當事件被觸發時,滑鼠指針的垂直座標。 | 2 |
| ctrlKey | 返回當事件被觸發時,"CTRL" 鍵是否被按下。 | 2 | Location | 返回按鍵在設備上的位置 | 3 |
| charCode | 返回onkeypress事件觸發鍵值的字母代碼。 | 2 |
| key | 在按下按鍵時返回按鍵的識別字。 | 3 |
| keyCode | 返回onkeypress事件觸發的鍵的值的字元代碼,或者 onkeydown 或 onkeyup 事件的鍵的代碼。 | 2 |
| which | 返回onkeypress事件觸發的鍵的值的字元代碼,或者 onkeydown 或 onkeyup 事件的鍵的代碼。 | 2 |
| metaKey | 返回當事件被觸發時,"meta" 鍵是否被按下。 | 2 |
| relatedTarget | 返回與事件的目標節點相關的節點。 | 2 |
| screenX | 返回當某個事件被觸發時,滑鼠指針的水準座標。 | 2 |
| screenY | 返回當某個事件被觸發時,滑鼠指針的垂直座標。 | 2 |
| shiftKey | 返回當事件被觸發時,"SHIFT" 鍵是否被按下。 | 2 |
方法
| 方法 | 描述 | W3C |
|---|---|---|
| initMouseEvent() | 初始化滑鼠事件對象的值 | 2 |
| initKeyboardEvent() | 初始化鍵盤事件對象的值 | 3 |
