IE8でJavaScriptのaddEventListener()が使えない

最近はIE8が対象ブラウザに入ることは少なくなっていると思いますが、IE8以下でaddEventListener()が使えないことを知らなかったので、IE8での対応方法をメモしておきます。

サンプルコード

まずは特に対応しなかった場合です。

HTML

<button id="btn">ボタン</button>

JavaScript

var btn = document.getElementById('btn');
btn.addEventListener('click', btnClick, false);

function btnClick() {
	alert('クリックしました');
}

開発者ツールのIE8で確認すると、consoleに『オブジェクトは ‘addEventListener’ プロパティまたはメソッドをサポートしていません。』と表示されていました。
対応前のデモページ

対応する場合、attachEvent()を使用します。

JavaScript

var btn = document.getElementById('btn');

if(btn.addEventListener) {
	btn.addEventListener('click', btnClick, false);
} else if(btn.attachEvent) {
	btn.attachEvent('onclick', btnClick);
}

function btnClick() {
	alert('クリックしました');
}

addEventListener()が使えるブラウザではaddEventListener()、使えない場合はattachEvent()でイベントリスナを登録しています。
対応後のデモページ

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930