2008年12月25日

window:事件(A-K)

window| 特徵A-M| 特徵N-Z| 方法A-F | 方法G-Z | 事件A-K| 事件L-Z
window 的事件操控器

使用這些事件操控器特徵時,可以用 window.handler;也可以省略 window,直接用 handler。一般的用法是:

window.handler=函式位置

當特定的事件發生時,會執行設定的函式。使用此法,一個事件只能設定一個操控器。可以改用 addEventListener,可以在一個事件加上多個操控器。

在 Firefox, Safari, Chrome 呼用事件操控器函式時,會將 event 物件放在第一個參數;在 IE 不會如此作。下面範例中,用指令 e = e || window.event 確保取得 event 物件。

事件操控器通常也可用在 HTML 元素。

onabort

關閉視窗或按瀏覽器的停止下載,會啟動此事件操控器。在 IE,onabort 只能用在圖像 <img> 元素;當圖檔很大,而用戶按瀏覽器的停止鈕時,會啟動此事件。下例沒測試成功。

onbeforeunload

在 unload 事件之前,啟動此事件操控器。下例中,先點選設定操控器,再點瀏覽器的重載(reload),就會啟動事件。

onblur

當視窗失去聚焦,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onblur。下例中,先點選設定操控器,再將焦點移到其它程式上。

onchange

視窗內容變更,會啟動此事件操控器。可加在 HTML 元素上使用。

  • 上例中,先點選設定操控器;接著在文字行輸入幾個文字;然後將焦點移到別處;這時會啟動事件。
  • IE 無此項;Firefox, Safari, Chrome 均執行成功。
onclick

用戶在視窗點擊滑鼠,會啟動此事件操控器。可由 event 物件檢查是哪一鍵被點擊及其座標。

event.button 的值,Firefox, Safari, Chrome 的定義:

  1. 0:左鍵。
  2. 1:中鍵,多已改為滾輪。
  3. 2:右鍵。

event.button 的值,IE 的定義:

  1. 0:沒有按。
  2. 1:左鍵。
  3. 2:右鍵。
  4. 3:兩鍵同時按。
  5. 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

onclose

關閉視窗,會啟動此事件操控器。下面的範例測試沒成功。

oncontextmenu

點擊滑鼠右鍵,會啟動此事件操控器。操控器傳回 false,可以取消預設的選單。Firefox 使用 window.oncontextmenu;IE, Safari, Chrome 使用 document.body.oncontextmenu。

ondblclick

用戶在視窗雙點擊滑鼠,會啟動此事件操控器。在 Firefox, Safari, Chrome 可以用 window.ondblclick;在 IE 必須使用 document.body.ondblclick。

在 Firefox 用 window.ondblclick 時,點擊滑鼠任一鍵,都會呼用操控器。其它情形,只有點擊滑鼠左鍵會產生 ondblclick 事件。

可加在 HTML 元素上使用,請參考 ondblclick

ondragdrop

用滑鼠由其它程式拖曳檔案,文件;放置此視窗,會啟動此事件操控器。要用 addEventListener設定事件操控器。

  • 上例只在 Firefox 測試成功。
onerror

當執行發生錯誤時,會跳到此特徵設定的操控器。操控器回傳 true,可以防止執行系統預設的操控器。操控器的參數:

  1. 錯誤訊息字串。
  2. 發生錯誤處的 URI 字串。
  3. 錯誤碼。

在 HTML 元素上使用 onerror 卻無法宣告參數時,可用 arguments[0] 至 arguments[2] 取得參數值。

可以使用 try catch 處理執行的錯誤。系統執行的錯誤會產生 Error 物件。

  • Safari, Chrome 失敗;IE, Firefox, 執行成功。
onfocus

當視窗獲得焦點,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onfocus。 下例中,先點選設定操控器,然後將焦點移到其它程式,再移回來。

onkeydown

鍵盤的鍵被壓下,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onkeydown。IE 必須使用 document.body.onkeydown。

onkeypress

鍵盤的鍵被壓著不放,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onkeypress。IE 必須使用 document.body.onkeypress。onkeypress 很像 onkeydown,但兩者傳回來的 keyCode 不同;對 shift, alt, ctrl 鍵的反應也不同。

onkeyup

鍵盤的鍵壓下後放開,會啟動此事件操控器。可加在 HTML 元素上使用,請參考 onkeyup。IE 必須使用 document.body.onkeyup。


©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。