-PR-
解決済み

ブラウザ判別スクリプト

  • すぐに回答を!
  • 質問No.2967070
  • 閲覧数337
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 23% (3/13)

ブラウザ別にcssを読み込みたいのですが、
firefox2.0に反映されません。
どうしてでしょうか?

<!--ブラウザ判別
function getOSType()
{
var uAgent = navigator.userAgent.toUpperCase();
if (uAgent.indexOf("MAC") >= 0) return "MacOS";
if (uAgent.indexOf("WIN") >= 0) return "Windows";
if (uAgent.indexOf("X11") >= 0) return "UNIX";
return "";
}
// Netscape Navigator -> Netscape
// Internet Explorer -> Explorer
// Safari -> Safari
// Opera -> Opera
function getBrowserName()
{
var aName = navigator.appName.toUpperCase();
var uName = navigator.userAgent.toUpperCase();
if (uName.indexOf("SAFARI") >= 0) return "Safari";
if (aName.indexOf("MICROSOFT") >= 0) return "Explorer";
if (uName.indexOf("FIREFOX") >= 0) return "Firefox";
return "";
}
function getBrowserVersion()
{
var browser = getBrowserName();
var version = 0;
var s = 0;
var e = 0;
var appVer = navigator.appVersion;
var uName = navigator.userAgent.toUpperCase();
if (browser == "Safari")
{
version = eval(appVer.substring(0,3)) - 4;
}
if (browser == "Explorer")
{
appVer = navigator.userAgent;
s = appVer.indexOf("MSIE ",0) + 5;
e = appVer.indexOf(";",s);
version = eval(appVer.substring(s,e));
}
if (browser == "Firefox")
{
s = uName.indexOf("FIREFOX/",0);
version = parseFloat(uName.substring(s+8,s+8+3));
}


return version;
}
//-->

<!--top.js
os = getOSType();
browser = getBrowserName();
version = getBrowserVersion();
if (os == "MacOS") dirName = "css/mac/";
if (os == "Windows") dirName = "css/win/";
if (os == "UNIX") dirName = "css/unix/";
if (browser == "Explorer") dirName += "ie";
if (browser == "Safari") dirName += "saf";
if (browser == "Firefox") dirName += "ff";
if ((version >= 1) && (version < 2)) dirName += "top.css";
if ((version >= 2) && (version < 3)) dirName += "top.css";
if ((version >= 3) && (version < 4)) dirName += "top.css";
if ((version >= 4) && (version < 5)) dirName += "top.css";
if ((version >= 5) && (version < 5.5)) dirName += "top.css";
if ((version >= 5.5) && (version < 6)) dirName += "top.css";
if ((version >= 6) && (version < 7)) dirName += "top.css";
if ((version >= 7) && (version < 8)) dirName += "top.css";

document.write("<link rel='stylesheet' href='"+dirName+"' type='text/css'>");

//-->
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル13

ベストアンサー率 41% (426/1024)

UA判別よりもシステム判別のほうが高精度です。
http://okwave.jp/qa2639629.html

ユーザーエージェントの判別は想定外のブラウザでアクセスされたとき正常に表示できません。
機能的には対応しているブラウザでもスクリプトが対応していないために弾かれると言うオチ。
お礼コメント
masasan007

お礼率 23% (3/13)

おかげさまでできました!
ありがとうございました!
投稿日時 - 2007-05-07 12:30:00
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1

当該のスクリプトで動かしてみましたがFirefox正しく認識しますよ。
スタイルシートが正しいこと
・本当に指定したパスにあるか
・本当にその属性はFirefoxで使えるのか
など確認した方が良いのでは?
お礼コメント
masasan007

お礼率 23% (3/13)

回答ありがとうございます。

ちなみにブラウザはfirefox2.0ですか?
投稿日時 - 2007-05-02 15:06:01


  • 回答No.2

No.1です。

そうですね。Firefox2.0.0.3です。
ご質問のスクリプトで確認した結果
「css/win/fftop.css」
とでますよ。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ