Windows Internet Explorer 9

JavaScriptベースのWebアプリケーションやWebページを開発する場合にこれまで頭痛の種になっていたもののひとつに、ブラウザごとにイベント処理の記述方法が違うというものがあった。特にこれはIEとそれ以外の主要ブラウザという違いにわかれており、あるイベント処理を記述するのにIE用の記述とそれ以外のブラウザ向けの記述用といったように開発する必要があり、ソースコードを煩雑化させる原因のひとつになっていた。

しかし、IE9からは状況が好転するという。IEBlog : DOM Level 3 Events support in IE9において、IE9からはDocument Object Model (DOM) Level 3 Events Specificationをサポートすると説明されている。IE9からはattachEventの処理を記述するためにif文を追加する必要がなく、ほかの主要ブラウザと同じようにaddEventListenerで処理できるようになる。

IEとそれ以外の主要ブラウザ向けにイベント処理をわける例 - IEBlog : DOM Level 3 Events support in IE9より抜粋

これまでもクロスブラウザで処理できるイベント処理はHTMLイベント属性を使うことで実現できた。しかしHTMLのイベント属性はDOMのイベント処理に比べて提供している機能が限られているため、より細かい制御を実現するにはどうしてもDOMのイベント処理を利用する必要があった。

Document Object Model (DOM) Level 3 Events Specificationはまだ策定段階にあるが、提供が予定されているイベントはすでにまとまっている。なおIE9やほかの主要ブラウザがDOM Level 3のイベントと実装したとしても、IE6、IE7、IE8は依然としてattachEventのみサポートするため、これらブラウザのシェアがなくなるまでは何らかの対処が必要になる。