• ベストアンサー

イベントハンドラに下記記述があるのですが、どういう

・イベントハンドラに下記記述があるのですが、どういう意味でしょうか?   if (window.event) {   event = window.event;   }

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

イベントハンドラは、発生したイベントの詳細を知りたい場合があります。 たとえば「画像をクリックした際の座標」が必要な場合です。 むかーしのブラウザでは、こう書いていました イベントの詳細はグローバル変数である window.event で調べています <img src=hoge.jpg onclick="alert(window.event.offsetX + ',' + window.event.offsetY)"> その後、マルチスレッド安全性とか整合性とかのために、 イベントの詳細はイベントハンドラの引数で調べられるようになりました 要素.onclick = function(event){  alert(event.clientX + ',' + event.clientY); }; ですが、ブラウザによっては引数に渡さない仕様のままだったので、 安全の為に以下の様に記述するようになりました。 要素.onclick = function(event){  event = event? event: window.event; // 引数がないならグローバル変数を取る  alert(event.clientX + ',' + event.clientY); }; というわけで、「昔のクロスブラウザ対策におけるイベントの詳細の取り方」と推測します。 ちなみに現在では、すべてのブラウザで以下の記述になります。 要素.addEventListener('click', function(event){  alert(event.clientX + ',' + event.clientY) }, false);

re97
質問者

お礼

回答&詳しい解説ありがとうございました。 大変勉強になりましたー

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

もしも window.event が取得できたら 変数eventの値をwindow.eventに置き換える っていう意味よ window.eventがundefinedの場合 if文はfalseになるの http://d.hatena.ne.jp/unageanu/20070705/1183627496 この辺にif文の中に入っているものによって trueなのかfalseなのかが一覧されているので参考にするといいと思うわ

re97
質問者

お礼

回答ありがとうございましたー

関連するQ&A

専門家に質問してみよう