ブラウザによる違い

イベントモデルの種類

種類IE以外IE説明
DOMレベル0ooHTML4標準。IE以外とIEで若干異なる部分がある。
DOMレベル2oxaaa
IE独自xo

DOMレベル0

  • ページ要素の属性として onXXXX という形式のイベントハンドラを指定
  • 属性名は全て小文字だけにする(例:onload)
  • イベントオブジェクトへのアクセス方法
    • IE ... window.event
    • IE以外 ... イベントを表すオブジェクトがイベントハンドラ関数の引数として渡される

DOMレベル2

  • 任意のオブジェクトの任意のイベントに対して、複数のイベントハンドラを登録することが可能
  • 各オブジェクトが以下の3つのメソッドを持っている
    • addEventListner?
    • removeEventLIstner
    • dispatchEventListner?

IE独自のイベントモデル

  • 各オブジェクトが以下の2つのメソッドを持っている
    • attachEvent ... addEventLister?相当
    • detachEvent ... removeEventLister?相当
  • IEのイベントモデルでは、各イベントハンドラにメモリが割り当てられるため、ページをロードする度にメモリが割り当てられる

イベントの取得

  • IEでもFirefoxでもイベントオブジェクトが取得できる関数
    function getEvent(){
        if (window.event) return window.event;
        var caller = arguments.callee.caller;
        while (caller) {
            var obj = caller.arguments[0];
            if (obj && (obj.constructor == MouseEvent || obj.constructor == KeyboardEvent)) return obj;
            caller = caller.caller;
        }
        return null;
    }
  • 参考:Firefoxでの擬似window.event

フォーム関連

全角入力

CompositionEvent?

  • IMEによるテキスト編集監視に用いるイベント
  • 半角入力時は当然発火しない
  • compositionstart ... IMEで未確定文字列の入力を開始した時
  • compositionupdate ... IMEで編集中のテキストが変更された時
  • compositionend ... IME確定時

キー関連

ボタン関連

イベントの優先順位

  • Netscape, Firefox, Opera, Safari では onmousedown→onmouseup→onclick→onmousedown→onmouseup→ondblclick の順にイベントが発生
  • Internet Explorer のみイベント発生順序が異なり、onmousedown→onmouseup→onclick→onmousedown→ondblclick→onmouseup の不規則な順でイベントが発生

トラブルシューティング


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-05-11 (水) 16:06:02 (715d)