- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:attachEvent(addEventListener)の使い方)
attachEvent(addEventListener)の使い方
このQ&Aのポイント
- JavaScriptのattachEventを使用してイベントハンドラを追加する方法について説明します。
- addFocus関数の引数に複数のテキストフィールドのname属性値を指定する方法について説明します。
- attachEventを使用する場合、thisを使用して現在のオブジェクトを参照することができません。Arg変数を使用して名前属性を参照する方法について説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
・ IEのattachEvent()は動作は、特異で、この場合 addFocus()関数の中でも イベントハンドラの中でも thisキーワードは、グロバルなwindowオブジェクトを指しているようです。 ・ 「テキストフィールドにフォーカスがあたるとそれぞれのname属性値が表示されることなのですが」とするには、window.eventオブジェクトを利用してください。ただしバブリングのない簡単な構成の場合とします。 function doFocus (node) { alert(window.event.srcElement.name); }
お礼
解答ありがとうございます。 上記ソースコードを一部改変してFFやNN、Operaでこの場合の「this」が 利用できるか確認してみたところ、 うまく動作することを確認しました。 auty様のおっしゃられた通りで、確かにIEだけ特異なのですね。 「srcElement」というものがあることも初めて知りました。 よって、ブラウザがIEの場合はsrcElementを使うようにソースを改変して解決いたしました。 適切な解説をいただきまして本当にありがとうございました。