IE9は結構標準仕様になってるんだね
IE9がwindow.addEventListener()に対応してるのを知ったんで、
wheditorの修正とかしたんだけど、
window.getSelection()なんかも実装されて、
かなり標準規格の動作できるようになってるね。
今まではIE判別にdocument.all見ることが多かったが、
IEにしかない機能を使いたい場合は別だが、
標準仕様のコードを優先的に使いたい場合は、
document.allじゃなくてwindow.addEventListenerの有無を調べたほうが良さそう。
Operaも巻き添えしなくて済むし。
あと、
今までaddEventListenerの第三引数のuseCaptureの意味良くわかってなかったんだが、
DOMのイベントってのは、
イベント発生時に一番外(親要素)の要素から調べていって、
イベントが設定されている場合は順番に記憶していって、
一番内側(子要素)まで確認終わったら、
設定されていたイベント処理を、後ろから順に処理していく。
って感じなんだね。
つまり、
一番外側の要素から確認していって、一番内側の要素から処理される。
親要素と子要素に同じイベントが設定されてたら、子要素が先に処理される。
なんだが、
useCaptureがtrueの場合は、確認した時点で即処理される。
つまり、一番外側の要素から処理されていく。
子要素に同じイベントが設定されてても先に処理される。
だから、
親要素にuseCaptureがtrueのイベントを設定して、
event.stopPropagation()でイベントを停止すれば、
親要素から子要素のイベントを無効化したりできる。
attachEventじゃできないことができたりするね。