IE8以前のための実装。IE9以降なら不要
Javascriptで任意のイベントに対して処理の付加と削除をする関数。イベントハンドラではなくイベントリスナーを使ったもの
-
element.addEventListener()
かelement.attachEvent()
を使う -
element.onXXX
は上書き問題があるので使わない
IE8以前をサポートしなくていいのであればelement.addEventListener()
系のみでいいので不要。
// イベントに対して処理を付加
function ae(el, ev, fn){
if (el.addEventListener) {
el.addEventListener(ev, fn, false);
} else if(el.attachEvent) {
el.attachEvent('on' + ev, fn);
}
}
// イベントに対して処理を削除
function re(el, ev, fn){
if (el.removeEventListener) {
el.removeEventListener(ev, fn, false);
} else if(el.detachEvent) {
el.detachEvent('on' + ev, fn);
}
}
// ページのDOMツリー構築後に実行(要するにwindow.onload)
function ale(fn){
if (window.addEventListener) {
window.addEventListener('load', fn, false);
} else if(window.attachEvent) {
window.attachEvent('onload', fn);
} else {
window.onload = fn;
}
}