• ベストアンサー

firefox だけ専用のCSSを表示させたいのですが、、、

firefox 専用のCSSを表示させたいのですが、 stylelink.js として var var_css=''; if(checkB.Mac) { if(checkB.SAF) { var_css="SAF"; } else if(checkB.IE52) { var_css="MacIE52"; } else if(checkB.IE5 || checkB.IE51 || checkB.IE6) { var_css="MacIE5"; } else if(checkB.NN6 || checkB.NN7) { var_css="MacNN6"; } else { var_css="common"; } } else if(checkB.Win) { if(checkB.IE) { var_css="IEGEK"; } else if(checkB.Win) { if(checkB.gecko) { var_css="firefox"; } else { var_css="common"; } } document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/"+var_css+".css\" title=\"fontproperty\">"); としましたが 外部 firefox.css が上手く反映しません。 どうすればよいのでしょうか? 御教授をお願いいたします。

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

  • ベストアンサー
  • NTJ
  • ベストアンサー率44% (46/103)
回答No.2

可能性としてまず、「判定文が誤っている」可能性は忌めないと思います。 とりあえず、以下のように単純化して、CSSが反映されるかを確認するのが先決と思われます。 <SCRIPT> document.write('<LINK rel="stylesheet" type="text/css" href="/css/firefox.css">'); </SCRIPT> 混乱の多い¥によるエスケープを、JavaScript側の文字列定義をシングルコートに変更して回避している点にもご注目ください。 もし、この記述でも反映されないのなら、問題はスクリプトの側にではなくCSSそのものの定義にあるか、パスの指定誤りと思われます。(たぶん、パスを絶対パスへ変更すると直るような気がしますが。) 逆にこれで反映されるなら、その前の分岐処理の誤りです。 LINKの出力部分を alert(var_css); へ書き換えて、期待通りの出力になっているかご確認ください。 JavaScriptはデバックのし難い処理系なので、このように原因を切り分けて少しづつ問題を絞り込んで行く努力が必要です。 デバッカを自力で組み込むような作業が必要な場合も多いですね。 頑張ってください。

ya-ya-
質問者

お礼

御礼が遅くなり申し訳ございません。 色々と試して基本的なところまでさかのぼって頑張って見ましたが別の方向から解決することになりました。 有難う御座いました。

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

その他の回答 (1)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

checkBって何でしょう? 全然、別のやり方ですが、以下のサイトを参考にしてはどうでしょう。

参考URL:
http://www.keynavi.net/ja/bugh/css_multi.html
すると、全ての回答が全文表示されます。

関連するQ&A