• ベストアンサー

Win,IE5以上とその他ブラウザでページを判別する方法

OSとブラウザを判別するスクリプトを見て自分でも考えたのですが…。 私の頭が足りないせいで 「WindowsのIE5以上のブラウザと、Mac含む他のブラウザを判別して別のページにとばさせる方法」がわかりません… どなたか教えてください。 よろしくお願いします。 Windows Ie5以上→a.html mac含むそのほかのブラウザ→b.html

  • akasa
  • お礼率69% (18/26)

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

普通はブラウザ名やバージョン、OSをそれぞれ調べ、複合条件判断をします。 が、ここまで極端な条件ならば、下記のスクリプトで十分でしょう。 (これを<HEAD>~</HEAD>の中に入れればOKです。) <SCRIPT language="JavaScript"> <!-- var nextPage = 'b.html'; if (navigator.userAgent.match(/MSIE (\d\.\d+); Windows/)) {   if (RegExp.$1 >= 5.0) nextPage = 'a.html'; } location.replace(nextPage); //--> </SCRIPT> IEでしかもWindowsならば、ユーザーエージェントの中に   MSIE *.*; Windows ** というような文字列が入っているので、これを正規表現で照合し、さらにそのバージョン部分を取り出して数値比較しています。 また、ページを遷移させるのに、location.replace(nextPage) を使いましたが、これは現在のページを指定したURLで置き換えるものです。(上記スクリプトを書いたページに「戻る」ことはできません。) 普通のリンクのようにページ間に前後関係を持たせたいなら、   location.href = nextPage; としてください。 注意: ブラウザ上では判断しにくい半角スペースがあるので、ソースを表示して確認して下さい。 また、行頭の全角スペースは、半角スペースかタブに変換してください。

akasa
質問者

お礼

上手く動きました!どうもありがとうございました!!嬉しいです~~1

その他の回答 (2)

  • onimotsu
  • ベストアンサー率36% (279/758)
回答No.3

ブラウザを判別して自動的に別のページにジャンプする方法はわりませんが 下記を参考にしていただければ。 ●リンクをクリックしたときにブラウザを判別しそれぞれ別のページにジャンプする方法 (この方法は良く使われています) http://www.openspc2.org/reibun/javascript/link/009/index.html ●ブラウザ別にスタイルシートを使い分ける方法(NTT東日本はこの方法です) http://www.openspc2.org/reibun/javascript/browser/012/index.html コピペしてURLなどを替えれば使えると思います。

参考URL:
http://www.openspc2.org/reibun/javascript/
akasa
質問者

お礼

見させていただきました♪ これから勉強するのに使いたいと思います。ありがとうでした~!

  • duckling
  • ベストアンサー率47% (88/185)
回答No.1

navigator.appVersion.indexOf("MSIE") ← IE navigator.appName.indexOf("Netscape") ← NN navigator.appVersion.indexOf("Mac") ← Mac 戻りが -1 じゃなければ、条件分岐(if)で飛ばせば OK です。

akasa
質問者

補足

すいません、基本的なこともよくわかっていないみたいで… 戻り、の意味も分かりません…すいません・・・

関連するQ&A

  • ユーザーエージェント IE6のブラウザ判別について

    調べているんですが、解決に至らず… 教えていただけると助かります! phpで、ブラウザ判別(ユーザーエージェント)を行い、IE6の場合のみ別ページへジャンプさせています。 全てというわけではないのですが、IE7でもIE6と認識される場合があり、困っています。 スクリプトは以下のとおりです。 <?php $user_agent = $_SERVER['HTTP_USER_AGENT']; $msie6 = ereg('Mozilla/4.0 (compatible; MSIE 6.0)', $user_agent); if ($msie6) { include( "http://○○/attention" ); } else { ?> <html>~ IE7のブラウザのうち、IE6と認識されるブラウザの法則性は分かりません。 いろいろと調べてみましたが、辿りつかず、類似の解説があれば教えてください。 また、上記スクリプトがおかしい点ありましたら教えてください! よろしくお願いします!

    • ベストアンサー
    • PHP
  • ブラウザの判別と外部jsの読み込み

    Javascriptによりブラウザを判別して振り分けようと考えています 2つの外部jsファイルがあり、仮に(A)と(B)とします MacのIE,safari,FireFox,NN、WinのFireFox,NNは(A)を読み込む WinのIEは(A)と(B)を読み込む 以上のようなものをさらに外部js(c)で設置しようと考えているのですが 構文が組めずに戸惑っています html→(c)を読み込み→MacのIE,safari,FireFox,NN、WinのFireFox,NN(A)読み込み        ↓        WinのIEは(A)と(B)読み込み ヒントやアドバイスをいただけますでしょうか? よろしくお願いします

  • 2個目のwebページを別ブラウザで開きたい

    ある事情で、まだIE6しか使えない状況です。 1個目のwebページ(A)をIE6で開い後、お気に入りに登録している他のwebページ(B)を開こうとすると、AがBに変えられてしまいます。Bを見ると同時にAを見たいと、「戻る」ボタンを押すしかない、しかし、まだBがAに変えられてしまいます。 Aを開いたら、別ブラウザでBを開く方法はありますか?目標は、別ブラウザで複数のwebページを見ながら作業したいです。 設定方法でもいいし、ショートカット組合せキーでの解決法なら、尚更ありがたいです、よろしくお願いいたします。

  • macかwinか判別しスタイルシートを振り分けたい

    こんにちは。 macかwinか判別して外部スタイルシートの読み込みを振り分けたいのですが、(mac.cssかwin.css)ご存知の方教えてください。 トップページはフレームになっていて、各コンテンツのページの文章をスタイルシートで設定しています。 この場合はスクリプトは各コンテンツのページにそれぞれ記述するのでしょうか? いろいろ調べましたが、ブラウザ別ばかりだったので・・・。 javascriptは初心者です・・。 どうぞよろしくお願いいたします。

  • Safariを判別し別ページに飛ばすには

    javascriptでブラウザを判別して、ブラウザによって違うページに飛ばしています。 基本的にはIEとそれ以外なのですが、Safariだけが別ページに飛んでくれません。(index.htmlにいたままになる) 下記のようにしていますが、どうすれば飛ぶようになるでしょうか? よろしくお願いします。 <script type="text/javascript"> if(navigator.userAgent.indexOf("MSIE") != -1){ window.location.href = "index.html";}     : else if(navigator.userAgent.indexOf("safari") != -1){ window.location.href = "index2.html";} </script>

  • ネットスケープ6を簡単に判別する方法?

    ブラウザの判別方法についてなんですが、IEとNN4の判別方法については雑誌などでよく見かけるのですが、NN6を簡単に判別する方法が載っている本が見つけられませんでした。 NN6を簡単に判別する方法を知っている方がいたら、教えて下さい。 ちなみに、IEとNN4は次のようなif文で判別しています。 if (document.all) {  // IE if (document.layers) { // NN4 また、NN6と「Mozilla」は、別のものとして判断しないといけないのでしょうか? (JavaScriptでできることに、大きな違いがあるのでしょうか?) それと、最近よく耳にする「Opera」というブラウザも、IEやNNとはまった区別の判定方法をしなければいけないのでしょうか? このMozillaやOperaのJavaScriptに関する情報を載せているページなどがありましたら、是非教えて下さい。

  • ブラウザが判別出来ない。

    お世話になっております。 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>

  • ブラウザ不具合(ie8のフリーズ)

    最近、ieでmsnのページを立ち上げるとどこかの記事の見出し(たとえばスポーツ)を選択し、フリーズし「このスプリプトの実行を中止しますか。このスプリクトがieの実行速度に反しています。スクリプトを実行し続けるとコンピュータが反応しなくなる可能性があります。」とのメッセージが出ます。「はい」と回答するとスクリプトを中止し、別の記事を選択でき正常になりますが、「いいえ」を選択するとフリーズ状態が継続します。これを改善したいのですが方法はありますか。改善できなければieを止めて他のブラウザにしようと思います。改善方法を教えてください。 ieは8でversion8.0.6001.18702です。 またPCはXPversion2002 servicepack3です。 この症状は別メーカのXPのPCで2台とも生じます。ただし7では生じません。ブラウザの不具合と思いますが、よろしくお願いいたします。

  • IE9でのタブブラウジングの禁止方法

    IE9では、<a target="_blank" 等で記述されているページでは IE8までの動作である、新しいウィンドウ立ち上げるのではなく 別タブに表示するようになり、いちいち右クリックをしなけれべ いけないこともあり困っています。 強制的にIE9、及び、それ以降のバージョンで使えると思われる IE9のタブブラウジング禁止、または、強制ウィンドウ新規作成を させる方法はないでしょうか? #メインブラウザーがIE9、64bitであるため、この質問をさせて頂きました。  他のブラウザでは、テスト利用以外には使用しないので、こちらのほうに  関しては構いません。 #HTMLの記述方法等の質問ではありません。 以上、よろしくお願いします。

  • 同じページをブラウザで複数開けないように

    同じページをブラウザで複数開けないようにすることは可能ですか。 例 123.html をすでに開いている。 さらに別のウインドウで 123.html を開いた場合に、何らかの処理で開けないようにする。 リンクをクリックではなく、別に開いたIEのお気に入りなどから開いた場合として。