使用這些事件操控器特徵時,可以用 window.handler;也可以省略 window,直接用 handler。一般的用法是:
window.handler=函式位置
當特定的事件發生時,會執行設定的函式。使用此法,一個事件只能設定一個操控器。可以改用 addEventListener,可以在一個事件加上多個操控器。
在 Firefox, Safari, Chrome 呼用事件操控器函式時,會將 event 物件放在第一個參數;在 IE 不會如此作。下面範例中,用指令 e = e || window.event 確保取得 event 物件。
事件操控器通常也可用在 HTML 元素。
關閉視窗或按瀏覽器的停止下載,會啟動此事件操控器。在 IE,onabort 只能用在圖像 <img> 元素;當圖檔很大,而用戶按瀏覽器的停止鈕時,會啟動此事件。下例沒測試成功。
在 unload 事件之前,啟動此事件操控器。下例中,先點選設定操控器,再點瀏覽器的重載(reload),就會啟動事件。
當視窗失去聚焦,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onblur。下例中,先點選設定操控器,再將焦點移到其它程式上。
視窗內容變更,會啟動此事件操控器。可加在 HTML 元素上使用。
- 上例中,先點選設定操控器;接著在文字行輸入幾個文字;然後將焦點移到別處;這時會啟動事件。
- IE 無此項;Firefox, Safari, Chrome 均執行成功。
用戶在視窗點擊滑鼠,會啟動此事件操控器。可由 event 物件檢查是哪一鍵被點擊及其座標。
event.button 的值,Firefox, Safari, Chrome 的定義:
- 0:左鍵。
- 1:中鍵,多已改為滾輪。
- 2:右鍵。
event.button 的值,IE 的定義:
- 0:沒有按。
- 1:左鍵。
- 2:右鍵。
- 3:兩鍵同時按。
- 4:中鍵。
event.screenX, event.screenY 放滑鼠點擊座標,以螢幕之左上角為原點 (0,0)。
event.clientX, event.clientY 放滑鼠點擊座標,以瀏覽器的展現區之左上角為原點。可以將瀏覽器變小,就可以看出與上面的差異。
在 Firefox, Safari, Chrome 可以用 window.onclick;在 IE 必須使用 document.body.onclick。
在 Firefox 用 window.onclick 時,點擊滑鼠任一鍵,都會呼用操控器。其它情形,只有點擊滑鼠左鍵會產生 onclick 事件。
可加在 HTML 元素上使用,請參考 onclick。
關閉視窗,會啟動此事件操控器。下面的範例測試沒成功。
點擊滑鼠右鍵,會啟動此事件操控器。操控器傳回 false,可以取消預設的選單。Firefox 使用 window.oncontextmenu;IE, Safari, Chrome 使用 document.body.oncontextmenu。
用戶在視窗雙點擊滑鼠,會啟動此事件操控器。在 Firefox, Safari, Chrome 可以用 window.ondblclick;在 IE 必須使用 document.body.ondblclick。
在 Firefox 用 window.ondblclick 時,點擊滑鼠任一鍵,都會呼用操控器。其它情形,只有點擊滑鼠左鍵會產生 ondblclick 事件。
可加在 HTML 元素上使用,請參考 ondblclick。
用滑鼠由其它程式拖曳檔案,文件;放置此視窗,會啟動此事件操控器。要用 addEventListener設定事件操控器。
- 上例只在 Firefox 測試成功。
當執行發生錯誤時,會跳到此特徵設定的操控器。操控器回傳 true,可以防止執行系統預設的操控器。操控器的參數:
- 錯誤訊息字串。
- 發生錯誤處的 URI 字串。
- 錯誤碼。
在 HTML 元素上使用 onerror 卻無法宣告參數時,可用 arguments[0] 至 arguments[2] 取得參數值。
可以使用 try catch 處理執行的錯誤。系統執行的錯誤會產生 Error 物件。
- Safari, Chrome 失敗;IE, Firefox, 執行成功。
當視窗獲得焦點,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onfocus。 下例中,先點選設定操控器,然後將焦點移到其它程式,再移回來。
鍵盤的鍵被壓下,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onkeydown。IE 必須使用 document.body.onkeydown。
鍵盤的鍵被壓著不放,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onkeypress。IE 必須使用 document.body.onkeypress。onkeypress 很像 onkeydown,但兩者傳回來的 keyCode 不同;對 shift, alt, ctrl 鍵的反應也不同。
鍵盤的鍵壓下後放開,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onkeyup。IE 必須使用 document.body.onkeyup。