• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ロールオーバーについて)

ロールオーバーについて

このQ&Aのポイント
  • ロールオーバーをシンプルなjavascriptで実装するとの事でとあるサイトにて、以下のようなスクリプトがありました。
  • DOMを使ってimgのソースを画像「_off.」から「_on.」に書き換えているんだなということまではわかるのですが、if(document.getElementsByTagName)とか、if(window.addEventListener)等の記述があります。
  • ifのあとの()の中身はi>0や(i>5)&&(i<=10)等、演算子を用いた条件を記述するタイプした目にしたことがないのですが、これはどういった事を表しているのでしょうか?

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

>以下をプレビューすると『id』がないのに、 の意図がハッキリと分からないのですが、 >if(document.getElementById){ これは、質問文にあるコードと同様に、「"document.getElementById"が存在するか?」です。 "document.getElementById"という"関数"は存在しますよね? if(document.getElementById('hoge')){ としたらalertは表示されないはずです。 この違いが分かりますか?

big-high
質問者

お礼

「以下をプレビューすると『id』がないのに、・・・」 の意味はhtml部に一意セレクタがあるかどうか。 それを調べているのだと思っていました。 1回目に回答していただいた 「ブラウザによって実装されている関数が違う事があるので・・・」 の意味がようやくわかりました。 大変ありがとうございます。 ようやく理解できました。 感謝です^^

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

それぞれ、document.getElementsByTagNameとwindow.addEventListenerが存在するかのチェックです。 ifブロックの中で上記関数を実行するので、その前に存在しているかをチェックしているのでしょう。 ブラウザによって実装されている関数が違う事があるので、実装されていない関数を呼び出してエラーにならないようにするための対応です。

big-high
質問者

補足

回答ありがとうございます。 いまいち理解が足りないもので申し訳ございません。 疑問に感じている箇所を簡略化したソースです。 以下をプレビューすると『id』がないのに、 アラートが表示されるのは何故なのでしょうか。 ▼▼▼ソース▼▼▼ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> <!-- function smartRollover() { if(document.getElementById){ alert("hoge"); } } //--> </script> <title>てすと</title> </head> <body onload="smartRollover()"> </body> </html>

関連するQ&A

専門家に質問してみよう