somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Javascript】ブラウザ別イベントリスナーの追加

htmlに直書きのイベントハンドらへの割り当てから、リスナーに変更した場合のメモです。ついでにブラウザ別も試してみました。この面倒な分岐をJavascriptライブラリが吸収してくれてると実感できました。

IEはajaxのオブジェクトも違うし、・・・W3C準拠してほしい

<script>
/**
 * 各ブラウザ対応イベントリスナー追加
 */
var addListener = function(element, event_type, func) {
  alert("event_type: " + event_type);

  // IE以外のブラウザ用
  if (element.addEventListener) {
    alert("IE以外");
    element.addEventListener(event_type, func, false);
  }

  // IE用 ※addEventListenerをもっていないため
  if (element.attachEvent) {
    alert("IE");
    element.attachEvent('on' + event_type, func);
  }
};

// リスナー追加テスト
addListener(window, 'load', function(){
  addListener(document.getElementById("btn_alert"), 'click', (function(){
    alert("alertest");
  }));
});
</script>
<input type="button" id="btn_alert" name="btn_alert" value="alert" />