• ベストアンサー

ブラウザ判定

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

noname#205789
noname#205789

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

  • ベストアンサー
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

  • ブラウザ判定でMozilla Firefoxの取得の方法

    IEかNNかを見分けるためのサンプルソースを見たら navigator.appName を使用していました。 しかしappNameが返すのは"Microsoft Internet Explorer"か"Netscape"かの2つしかない(とほほによると)ので、それ以外の判定ができません。 ほかの方法などで判定できるのでしょうか?もしかしたら、むずかし~いソースになってしまいますか? JavaScriptを今少しかじっているところですが、ブラウザごとの仕様の違いに少しとまどっています。 IEとNNを比較して解説したサイトは多いのですが、FireFoxも考慮に入れたサイトはあまり見かけません。 もしありましたら紹介おねがいします。

  • CSSをブラウザ別に振り分ける方法

    JavaScript初心者で、ソースは本に載っていたものをそのまま使っているのですが、その本だと、MAC、WIN-IE、WIN-NSの3つの外部スタイルシートを読み込ませるスクリプトしか載っていないので、困っています。 MACでも、IE、NS両方とも振り分けたいんです。 今使っているソースは以下です。 このファイル自体は、フレームセットファイルでフレームを切った中のファイルなのですが、フレームセットファイルにも<script language="JavaScript">以降の記述は必要なのでしょうか? 必要な場合は、どのようにして記述したら良いか教えて下さい。 よろしくお願いします。 <HTML> <HEAD> <!--?--> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP"> <TITLE></TITLE> <script language="JavaScript"> <!-- mac=(navigator.appVersion.indexOf("Mac")!=-1)?true:false; ie=(navigator.appName.charAt(0) == "M")?true:false; ns=(navigator.appName.charAt(0) == "N")?true:false; if (mac) { fName = "mac.css"; } else { if (ie) { fName = "win_ie.css"; } else if (ns) { fName = "win_ns.css"; } } if (fName != null) { document.write("<LINK REL=STYLESHEET HREF='"+fName+"' TYPE='text/css'"); } //--> </script> </HEAD>

  • JavaScriptで「実行中のブラウザ」の確認

    JavaScriptでプログラムを組んでいます。 OSはWin7 Home 64bit、通常使うブラウザは「FireFox」です。 ブラウザによって実行内容を変えたいため、「navigator.appName」で情報を得るのですが、 どのブラウザでも「Netscape」(FireFoxのことだと思います)になってしまいます。 どうも「navigator.appName」は通常使うブラウザの値が設定されているようです。 「通常使うブラウザ」ではなく、「実行中のブラウザ」の情報が欲しいのです。 いい方法があれば、教えてください。

  • MAC ブラウザ情報を取得するには

    はじめまして、 ゆありです。 質問させて下さい。 ASPを用いて、クライアントがMACでNetscapeだった場合、ブラウザのバージョンを取得したいんです。 ユーザエージェントを取得してみたのですが、 (1)OS :navigator.userAgent      Win/Mac を判定 (2)ブラウザ :navigator.appName       Explorer/ Netscape を判定 (3)ブラウザバージョン :IE は navigator.userAgent.substring(navigator.userAgent.indexOf("Netscape",0)+9,myAgent.indexOf("Netscape",0)+10); Netscape はnavigator.userAgent.substring(navigator.userAgent.indexOf("MSIE",0)+5,myAgent.indexOf("MSIE",0)+6); 上記の情報で、Windows(IE/Netscape)と MAC(IE)がクライアントの場合、 (3)の結果に正常値(IE6.0なら6、Netscape7.1なら7)が帰ってくるのですが、MAC(Netscape)だとうまくいきません。 MACで、Netscapeのバージョンの取得方法を知っている方、 または、Netscapeの7 と判定する為に取得できそうな情報をしっている方が いらっしゃいましたら教えて下さい。

  • Javaでブラウザ判定

    Javaでブラウザの判定を行いたいのですが 何かありますでしょうか? なにぶん初心者なもので どうしたらいいか検討もつきません。 JavaScriptでの判定方法は navigator.appNameなどで出来るみたいですが JavaScriptではなく Javaで出来るかどうか探しているのですが 分かる方がいらっしゃいましたら ご教授下さい。 よろしくお願いします。

    • ベストアンサー
    • Java
  • ブラウザが判別出来ない。

    お世話になっております。 JavaScriptの本を購入しました。 その本にブラウザ判定のスクリプトが掲載されており、それをそのままアップしたところ、私はIE6なのにIE4と判別されてしまいました。 下記がそのスクリプトです。 ちなみに、私はXPのIE6です。 このスクリプトはこれで完璧なのでしょか? また、出来ましたら、このスクリプトを試していただけたらと思うのですが・・・よろしくお願い致します。 <script language="JavaScript"> <!-- if( navigator.appVersion.charAt(0)==4){window.location.href = "nn4.html"} // NN Ver4 の場合 if( navigator.appVersion.charAt(0)==5){window.location.href = "nn5.html"} // NN Ver5 の場合 if( navigator.appVersion.charAt(0)==6){window.location.href = "nn6.html"} // NN Ver6 の場合 } if( navigator.appName.charAt(0)=="M"){ if( navigator.appVersion.charAt(0)==2){window.location.href = "ie2.html"} // IE Ver2 の場合 if( navigator.appVersion.charAt(0)==3){window.location.href = "ie3.html"} // IE Ver3 の場合 if( navigator.appVersion.charAt(0)==4){window.location.href = "ie4.html"} // IE Ver4 の場合 if( navigator.appVersion.charAt(0)==5){window.location.href = "ie5.html"} // IE Ver5 の場合 if( navigator.appVersion.charAt(0)==6){window.location.href = "ie6.html"} // IE Ver6 の場合 } //--> </script> <noscript>JavaScript を使用しています。JavaScript を有効にしてください。</noscript>

  • Netscape navigator.appNam

    <html> <head> <title>test</title> </head> <script type ="text/javascript"> document.write("ブラウザ名:"+navigator.appName); </script> </body> </html> を実行すると 返り値がNetscapeになります。 IE11でもグーグルクロームでも同じ結果です。 なぜ、Netscapeなのでしょうか? IEやグーグルクロームが返ってくると思ってました。

  • JavaScriptを使って、現在のブラウザがhtmlかchmかを判定する方法は?

    よろしくお願いします。 htmlをまとめて、chmを作っています。 JavaScriptを使って、現在のブラウザがhtmlかchmかを判定する方法はありますか? navigator.appNameで見分けられると思ったのですが、両方ともMicrosoft Internet Explorerになっています。 何か良い方法があれば教えていただけないでしょうか。 つまり、html、chmによって処理を分けたいと思っているのです。

  • Netscape7.1上でJavaScript(window.close)が動作しません

    こんにちは,Netscape7.1でスクリプトが思った様に動いてくれずに少し困っています.もし何かご存知のことがあればお知らせください. Web上で動く社内システムを開発しているのですが,スクリプトの動作がInternet ExplorerとNetscapeで大きく異なるため,使用はInternet Explorerのみに限定しようと思い,先頭で以下のソースの様なチェックを入れています. <SCRIPT LANGUAGE="JavaScript"> <!-- if (navigator.appName == "Microsoft Internet Explorer") { } else { alert("本システムは,Internet Explorerで使用してください."); window.close(); } //--> </SCRIPT> ブラウザがNetscape6.1であれば問題なく意図した動きをしてくれるのですが,Netscape7.1ではalaert表示後OKボタンを押してもブラウザが終了しません. 単純にバージョンによる差なのか,セキュリティなどの設定の違いか判然とせず,色々と調べてみたのですが,結局分かりませんでした. 何か同じ様な経験をお持ちの方やアドバイスをいただける方がいらっしゃると大変助かります. よろしくお願いします.

  • Netscapeで、elements("test")は使用不可ですか?

    alert(formName.elements("testName")); とすると、 IEでは、nullがアラート表示されますが、 Netscape7.02では、 Javascriptがアラート表示されず Javascriptが終了してしまいます。 Netscapeでも、testNameオブジェクトを アラート表示するにはどうしたらよいでしょうか?

専門家に質問してみよう