ブラウザによるCSSの切替スクリプトを作りましたが上手くいきません。
====css.js======================================================
function browserCheck(){
//変数myBrowにユーザの環境を代入
myBrow = navigator.userAgent;
//変数myBrowに文字列Operaが入っていた場合(Opera)の処理
if (myBrow.match(/Opera[\/\s](\d\.\d+)/))
document.write("<link rel="stylesheet" type="text/css" href="Opera.css" charset="Shift_JIS">"); //Operaの処理
//変数myBrowに文字列MSIEが入っていた場合(IE)の処理。
//Operaにも文字列MSIEが入っているため、Operaの処理の後に行います。
else if (myBrow.match(/MSIE (\d\.\d+)/))
document.write("<link rel="stylesheet" type="text/css" href="MSIE.css" charset="Shift_JIS">"); //MSIEの処理
//変数myBrowに文字列Firefoxが入っていた場合の処理。
else if (myBrow.match(/Firefox[\/\s](\d\.\d+)/))
document.write("<link rel="stylesheet" type="text/css" href="Firefox.css" charset="Shift_JIS">"); //Firefoxの処理
//変数myBrowに文字列Netscapeが入っていた場合の処理。
else if (myBrow.match(/Netscape[\/\s](\d\.\d+)/))
document.write("<link rel="stylesheet" type="text/css" href="Netscape.css" charset="Shift_JIS">"); //Netscapeの処理
//上記以外の処理
else myBrow = "unknown"; //それ以外のブラウザ
document.write("<link rel="stylesheet" type="text/css" href="unknown.css" charset="Shift_JIS">"); //それ以外のブラウザの処理
}
================================================================
<html>
<head>
<script language="JavaScript" src="css.js"></script>
<Script language="JavaScript"><!-- browserCheck(); //--></Script>
</head>
</html>
どこか間違っているでしょうか?
ご回答、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
if (myBrow.match(/Opera[\/\s](\d\.\d+)/)){
document.write('<link rel="stylesheet" type="text/css" href="Opera.css" charset="Shift_JIS">');}
確かこんな書き方だった様な、気がします。
No.2
- 回答日時:
感染の余地があると思ったので締め切られているところにあえて割り込むような形で回答させていただきます。
(質問者が追加依頼を出さない限り)絶対にポイントがもらえないからあんまり得じゃないんですけどねぇ^^;
で、スクリプトについてなのですがUserAgent判定は時々不具合を起こします。
例えばOperaが一番最初に来ているのはUA偽装でもOperaという文字列が残るからでしょうが、
設定を変えれば完全にIEやFirefoxとして判別することが出来るため不具合の出ることも予想されます。
通常のUA偽装
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ja) Opera 9.10
完全にUA偽装
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ja)
また、NetscapeとFirefoxは源流が同じものであり、両者ともGeckoというブラウザエンジンを使用しているためバージョンの古い新しいと言う問題を除けば表示はほぼ同一です。
さらに、NSやFx以外にもGeckoを使用したブラウザは多数存在するし、Firefoxでも次期版の開発版はUAにFirefoxという文字列を出力しません。
(Geckoを使用したブラウザの例として他にMozillaやSeaMonkeyなどが上げられますし、他にもWindows限定のSyleraやMac OS X限定のCaminoなんていうのがあります。)
この場合はNSやFx以外のユーザー、またFx開発版などのユーザーに設定変更を強いることとなり、嫌がられることもあるようです。
(いつ何処で誰がどういうブラウザを使っているかと言うのは分からないものです。)
http://okwave.jp/qa2841265.html
(ANo.8のhimajin100000さんの回答を参考)
UserAgentのみを持ってブラウザの種類を判別するのはいろいろと問題があるので、
下記アドレスのANo.3でmatumomusiさんが回答されている内容を参考にしてみてください。
UaerAgent判定からすれば判定の精度が大幅に上昇するだけでなく、サポート可能な環境もかなり増えます。
http://okwave.jp/qa2639629.html
ちなみに、このQ&Aに上がっているAppleWebKitというのはMacintoshのSafariなどで使われているブラウザエンジンのことです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.openでタイトル名の指定
-
はじめまして。wmv動画をア...
-
ネスケでdocument.write
-
ブラウザ判定による画像表示とj...
-
時間によって違う文章を出したい
-
今日の月と日付の1週間後や3日...
-
パソコンによって表示が違います。
-
テキストフォームの内容をペー...
-
java カレンダーの日付指定で...
-
idを使わずにonclickで自身の要...
-
同じIDで定義した要素の配列を...
-
Linux バイナリ実行できない "...
-
javascriptを用いて作成された...
-
C#OpenCv V4にのエラーに関する...
-
ジェネレーターの作り方
-
ASP.NETのコントロールの値をJa...
-
Vb.netのグローバル変数の宣言...
-
jQueryの :not() .not() が有効...
-
関数でy=g(x)のgとは何の略です...
-
confirmの連続?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openでタイトル名の指定
-
○歳△ヶ月と×日を計算してくれる...
-
JavaScriptとHTMLの課題です
-
ホームページに日付を自動更新...
-
なぜ、ジャバスクリプトが表示...
-
配列を使って平均を求めるプロ...
-
引数を渡さずに呼び出し元の変...
-
for文のiを使ってリンク先のア...
-
javascriptとphpの連携で疑問
-
document.write()の()内にタグ...
-
document.writeで画面が消える
-
JAVAで時刻に対して簡単な四則...
-
現在の日付から、1ヶ月前にす...
-
カレンダーをプログラミング
-
初歩的なことなんですけど
-
document.write内のタグ
-
今日の月と日付の1週間後や3日...
-
Javascriptのfunction文がわか...
-
来年の今日の曜日・・・?
-
Java Scriptのメソッドについて
おすすめ情報