• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSSをブラウザ別に振り分ける方法)

CSSをブラウザ別に振り分ける方法

このQ&Aのポイント
  • JavaScript初心者の方が、CSSをブラウザ別に振り分ける方法について困っています。
  • 現在使用しているソースコードは、MAC、IE、NSの3つの外部スタイルシートを読み込むスクリプトですが、MACでもIEとNSの両方に対応したいとのことです。
  • フレームセットファイル内にも<script>タグが必要かどうかや、記述方法について教えていただきたいです。

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

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

var agt=navigator.userAgent.toLowerCase(); var nav=navigator.appName.charAt(0); var fName; if (agt.indexOf("mac")!=-1) { // mac if(nav=="M") fName = "mac_ie.css"; if(nav=="N") fName = "mac_ns.css"; } else if (agt.indexOf("win")!=-1) { // win if(nav=="M") fName = "win_ie.css"; if(nav=="N") fName = "win_ns.css"; } else { // ?? 他のOS } if (fName != null) { document.write("<LINK REL=STYLESHEET HREF='"+fName+"' TYPE='text/css'"); }

eggchoco
質問者

補足

kokucho81さん、ありがとうございます。助かりました。 さっそく試したところ、無事振り分けることができました。 でも、一つ問題があるのです。 このスクリプトを記述したファイル自体をMACのNS4.7で表示させると ちゃんとスタイルシートは読み込まれるのですが、 フレームセットファイルの一フレームとして読み込むと、 スタイルシートを読み込んだり読み込まなかったりします。 読み込まない場合の方が多いです。 フレームセットファイルには、特別なことは記述していません。 対応策をご存じでしたら是非教えていただけると嬉しいです。 よろしくお願いします。

その他の回答 (1)

  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.2

フレーム使用時の読みこみのタイミング等については、NS4系はバグっています。 読みこみだけではなく、フレームのピクセル指定などもNS4はバグっていまして、 はっきりいうと、あまりまともに相手にするのは止めた方が良いと言うように思います。 あと、CSSを分けて、それをJSで読みこむと言うよりは、CSS.JSというファイルをひとつ用意して、そのJSの中で、ユーザーエイジェント(ブラウザ+OS)に沿ったCSSを吐いた方が、安定した動作が期待できるように思います。 (このときも、document.writeを連発すると、またまた、NSでバグるので、できるだけ、var s="" s+=~; s+=~; とどんどん文字列を連結して、最後に一度だけ、document.writeするのが常套手段です。とにかくNS4は無茶苦茶なのですぐバグるのです。) まぁ、全体のアクセスの中で、何%ほどMACのMS4系ユーザーがいそうか、一度お調べになって、1日1人とかであれば、それを相手にするよりはコンテンツを充実させた方が総合的には良いでしょう。

eggchoco
質問者

お礼

ありがとうございました。 これで諦めがつきました。 MACのNS4系のユーザー対応にやっきになるのはやめようと思います。 もっと勉強してCSSのこと、JavaScriptのことを理解できるようになってから また悩もうと思います。