• ベストアンサー

ブラウザ判定

xpの時に作ったJavascriptを試してみたんですが、今win7,IE11なんですが、 brws = navigator.appName; alert(brws) ; をすると、netscapeと返します。 今はもういろいろと、ソースが変わってしまったのでしょうか? また新しい本を買って学びなおす必要がありますか?もしまた組むとしたら。

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

  • ベストアンサー
noname#202910
noname#202910
回答No.3

ブラウザ判定には、主にnavigator.userAgentを参照します。 ieのバージョンで区別するなら、navigator.appVersionも見る必要があります。 html自体も、ブラウザのバージョンも日々変わっているので、 常に学びなおす必要はありますね。 今のご時世、問題さえはっきりしていれば、大抵のことはネットで検索するだけで 情報がでてくるので、敢えて本を買う必要もありません。 他の回答にある通り、jqueryなどのライブラリを使えば、 そういったブラウザごとの違いを意識せずに一定の書き方ができます (だからそんなのはjqueryでやれ、というのは決めつけすぎな気もしますが)。 今後新しくプログラムを書く機会があれば、検討してみてください。

noname#205789
質問者

お礼

しばらく組んでなかったもので、 もうだいぶ変わったのかぁと不安になりましたが、 いずれにしてもある程度は新しい知識を入れ続けないといけないようですね。 ご回答ありがとうございました。

その他の回答 (2)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

ブラウザの判定は極力すべきではありません。 どうしてもバグ対策に必要なときだけにしてください。 navigator.appNameは仕様で"Netscape"を返すべきとされています。 これも"Netscape"でないと動かないスクリプトが万栄したからです。 http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-navigator-appname

noname#205789
質問者

お礼

>仕様で"Netscape"を返すべきとされています 素人なので不思議ですが、そういうものなんですね。 ご回答ありがとうございました。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

なぜブラウザ判定が必要なのか、補足をお願いします。 それによって動作が違う部分を同一の動作にしたい、という場合ならば jQuery などのライブラリで違いをラップするという方法があります、というか、そういった面倒くさいことをライブラリに任せて本質的な部分を記述するというのが最近の流れです。 したがって、上記以外の理由があればお教えください。

noname#205789
質問者

お礼

質問は、今はもういろいろと、ソースが変わってしまったのでしょうか? また新しい本を買って学びなおす必要がありますか? と言うことでした。 わざわざアドバイスをありがとうございます。 他の過去作はうまく動いてるようなので、変わり内容ですね。 ありがとうございました。

noname#205789
質問者

補足

特に判定は必要ないのですが、あまり詳しくないので、いろいろテストしていたものを再度動かしただけでした。 ご親切にありがとうございました。

関連するQ&A