• 締切済み

IEとNSとその他を判断し実行するHTMLを切り替える方法は?

IEとNSと、その他のブラウザのそれぞれのヴァージョンによって、実行するHTML文を変えたいのですが、どういう方法がありますか? Windows環境とMac環境も考慮したいです。 同じHTML上で振り分けてもいいのですが、それぞれにブラウザ別のHTMLファイルを用意し、ブラウザによって切り替えて実行するのでも良いです。 JavaScript以外のスクリプト(CGI)でもかまいませんが、どのブラウザでも機能できる方法を取りたいです。 ご教授下さいませ。

みんなの回答

  • txrx
  • ベストアンサー率45% (83/184)
回答No.3

googleで“環境変数HTTP_USER_AGENT”とすると山のように出てきます。(^^; URLは、・・・.cgiとなってしまいます。 Index.cgiとすれば、http://???.com/cgi-bin/で出てくるかもしれません。 そのほかには、SSIを使用して~.shtmlとするか、同様にIndex.shtmlとすれば、http://???.com/でトップページ表示されますので、URLはあまり気になりませんね。

THUBAN
質問者

お礼

どうも、ありがとうございました。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • davosuke
  • ベストアンサー率61% (34/55)
回答No.2

JavaScriptの場合は Navigatorオブジェクトの使用することで可能です。 Navigator.appNameがブラウザ名を取得します。 NSは Netscape IEは Microsoft Internet Explore をそれぞれ返します。 Navigator.appVersionでブラウザのバージョンを取得します。 実行例 バージョン:4.6[ja](win98;I) バージョン番号の後ろに、OS名、インターナショナル版・US版などの種別、CPUの種類などの情報が付加されます。 ANo.1 のように ユーザエージェントを取得したいのであれば Navigator.userAgent で取得できます

THUBAN
質問者

お礼

どうも、ありがとうございました。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • txrx
  • ベストアンサー率45% (83/184)
回答No.1

CGIを使用すると、環境変数HTTP_USER_AGENTにブラウザの種類が設定されます。 この種類から判断して出力するHTMLファイルを選択すればよいと思います。 CGIであれば、PerlでもCでもC++でもできます。

THUBAN
質問者

お礼

どうも、ありがとうございました。 参考にさせていただきます。

THUBAN
質問者

補足

具体的に、サンプルなどが記述されているサイトがあれば教えていただけると助かります。 ちなみに、トップページからすでに判定させたいのですが、CGIを使う場合URLが気になります。 例えば、「http://www.xxxx.net/yyy.cgi」というふうになってしまいますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • JavaScriptをOFFでもWin, Mac, IE, NSでスタイルシートを振り分けるには?

    JavaScriptをOFFでもWin, Mac, IE, NSでスタイルシートを振り分けるにはどうしたら良いでしょうか。 現在は外部のJavaScriptファイルで、Windows, Machintosh, IE, NetScapeの四つのユーザーの環境に合わせて外部スタイルシートファイルを自動選択させるようにしているのですが、これではJavaScriptをOFFにして閲覧するユーザーでは、スタイルシートが効いていない状態になってしまうのです。トップページをCGIなどのサーバサイドスクリプトにしないといけないのでしょうか? どなたかお知恵をお借りできませんでしょうか。宜しくお願い致します。

  • HTML化によるホームページの高速化方法について

    HTML内で外部サーバにあるCGIをjavascriptとして起動させて、 結果を表示する方法を行っていますが、実行させるjavascriptの数が多くなるに連れて ページが表示されるまでに時間がかかってしまいます。 そこで、ページが表示されるたびに毎回javascriptを表示させる方式(下例のold.html)ではなく、 old.html内のjavascript部分を実行させたものをHTML化したnew.htmlを 自動で作成するcgi(下例のtranslate.cgi)などを作りたいと考えていますが、 どのように作ればいいのでしょうか。 【old.html(一部抜粋)】 <BR>下記にtest.cgiの実行結果が表示されます!<BR> <SCRIPT language="javascript" src="http://www.xxx.com/test.cgi"></SCRIPT> 【test.cgi(一部抜粋)】 print "Content-Type: application/x-javascript\n\n"; print "document.write('<P>test.cgiの実行結果だよ</P>');"; 【new.html(一部抜粋)】 <BR>下記にtest.cgiの実行結果が表示されます!<BR> <P>test.cgiの実行結果だよ</P> ●translate.cgiの仕様は、下記の内容を考えています。 perlについては少しだけ理解はしているのですが、 (3)部分のプログラム方法がわかりません。 【translate.cgi】 (1)old.htmlファイルをオープンする (2)old.htmlファイルを一行ずつ読み込み、javascript以外であれば、 そのままnew.htmへ書き込む (3)javascriptの場合には、実行させた結果を取得しnew.htmlへ書き込む 大変お手数お掛けいたしますが、 どうぞよろしくお願い致します。

    • ベストアンサー
    • Perl
  • HTMLを動的に変更する方法

    <div id="foo"></div> の中に、後から読み込んだJavaScriptファイルでHTMLを流し込みたいのですが、それにはどのように記述するのがよいのでしょうか。 あまりに古いブラウザに対応する必要はありませんが、ある程度幅広く、OSやブラウザに依存せずに実行させる必要があります。 また、実行タイミングはHTMLの描画途中(window.onload発生前)です。 確か、innerHTMLを変更する方法やDOMの何とかいう関数を使う方法などがあったように思うのですが、どれがどのブラウザのどのバージョンで実行できるのか分かりません。 そういうことが載っているサイトなどありましたら、そちらも教えてください。 よろしくお願いします。

  • IEとNSで画像の容量が違う?

    私自身は窓機なので確かめる事が出来ないのですが、 友人が「MacのIEで画像の容量チェックをしたときとNSでしたとき、全然大きさが違うのでどちらが正しいのか分らない」と困っています。 IEだと「60KB」と「68KB」がNSだと「28KB」「36KB」 私がWin MeのIEで見てみると「28KB」「36KB」でした。 チェックのしかたがどこか違っているのでしょうか? それともブラウザでこんなに差が出てしまうものでしょうか? どうぞよろしくお願い致します。

    • ベストアンサー
    • Mac
  • JavaScriptのonLoadイベントが、発生したり発生しなかったりする。

    ■環境  ・Mac OS X(バージョン10.3.4)  ・Internet Explorer for Mac(バージョン5.2.3) ■詳細  ・HTMLが読み込まれたときにJavaScriptのhogehoge関数を実行させたいため   HTMLの<BODY>タグを下記のように記述している。    <BODY "onLoad=hogehoge()">  ・当該HTMLを読み込んだとき、あるときはhogehoge関数が実行されるが   あるときは実行されない。   →onLoadイベントが発生していないよう。  ・上記現象に再現性なし。  ・他ブラウザでは、当該HTMLのonLoadイベントは必ず発生する。   確認したブラウザは下記の組み合わせ。    ・Mac OS 9(9.2.4) + Internet Explorer 5(5.1.7)    ・Mac OS 9(9.2.4) + Netscape 4.7    ・WindowsXP + IE6.0(SP2)    ・WindowsXP + Netscape 4.77 ■質問  ・上記現象は、Internet Explorer for Mac(バージョン5.2.3)の   既知の障害でしょうか。  ・回避方法(onLoadイベントを必ず発生させる方法)はありますでしょうか。

  • HTMLで、IE/firefox 書き分ける方法は?

    よろしくお願いします。 HTMLで、IE/firefox 書き分けたいと思います。 1. <b>IE</b> 2. <b>firefox</b> IEで見るときは1.が見えて、firefoxで見るときは2.が見えるようにしたいと思います。 script/cssなどを使わないで実現する方法はあるのでしょうか?

  • 拡張子HTMLのファイルを実行したときの様子について

    デフォルトのブラウザにIEを指定しています。 しかし、最近問題が発生します。 ローカルディスクから拡張子HTMLのファイルをダブルクリック等で 実行すると、既に開いているIEのページに置き換わって表示されてしまうのです ダブルクリックで実行したときに、IEを別ウインドウで開く方法って ありますか? 合ったら教えてください。 ブラウザ:MSIE 5.0 OS:WIN98SE

  • HTMLでブラウザを終了させる方法

    HTMLでブラウザを終了させる方法というのがあるのですか? IE5以上で可能であれば、バージョン依存でもいいので、ご存知の方、教えてください。

  • Ajaxで読み込んだHTMLページに書き込んだscriptの実行方法

    Ajaxを利用した読み込んだHTMLページに記載された<script>???</script>内のプログラムを.onLoadのような方法で実行する方法はあるのでしょうか?