JavaScript初心者で、ソースは本に載っていたものをそのまま使っているのですが、その本だと、MAC、WIN-IE、WIN-NSの3つの外部スタイルシートを読み込ませるスクリプトしか載っていないので、困っています。
MACでも、IE、NS両方とも振り分けたいんです。
今使っているソースは以下です。
このファイル自体は、フレームセットファイルでフレームを切った中のファイルなのですが、フレームセットファイルにも<script language="JavaScript">以降の記述は必要なのでしょうか?
必要な場合は、どのようにして記述したら良いか教えて下さい。
よろしくお願いします。
<HTML>
<HEAD>
<!--?-->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">
<TITLE></TITLE>
<script language="JavaScript">
<!--
mac=(navigator.appVersion.indexOf("Mac")!=-1)?true:false;
ie=(navigator.appName.charAt(0) == "M")?true:false;
ns=(navigator.appName.charAt(0) == "N")?true:false;
if (mac) {
fName = "mac.css";
}
else {
if (ie) {
fName = "win_ie.css";
}
else if (ns) {
fName = "win_ns.css";
}
}
if (fName != null) {
document.write("<LINK REL=STYLESHEET HREF='"+fName+"' TYPE='text/css'");
}
//-->
</script>
</HEAD>
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'");
}
この回答への補足
kokucho81さん、ありがとうございます。助かりました。
さっそく試したところ、無事振り分けることができました。
でも、一つ問題があるのです。
このスクリプトを記述したファイル自体をMACのNS4.7で表示させると
ちゃんとスタイルシートは読み込まれるのですが、
フレームセットファイルの一フレームとして読み込むと、
スタイルシートを読み込んだり読み込まなかったりします。
読み込まない場合の方が多いです。
フレームセットファイルには、特別なことは記述していません。
対応策をご存じでしたら是非教えていただけると嬉しいです。
よろしくお願いします。
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人とかであれば、それを相手にするよりはコンテンツを充実させた方が総合的には良いでしょう。
ありがとうございました。
これで諦めがつきました。
MACのNS4系のユーザー対応にやっきになるのはやめようと思います。
もっと勉強してCSSのこと、JavaScriptのことを理解できるようになってから
また悩もうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ファイルのfunctionの読み込み方
-
Dreamweaver で 外部JSを読み込...
-
cssにjavascriptを入れる?呼び...
-
Javascriptでブラウザ判別、ifr...
-
javascriptとApacheの設定
-
メールフォーム、受信メールの...
-
外部ファイルを実行
-
ASP.NETでjsファイルのリンクの...
-
外部ファイルでBODYのonloadイ...
-
初心者です。あまりに初歩的な...
-
JavaScriptのエラー ( 関数の...
-
ScriptがTABLEタグの中に表示さ...
-
javascriptのalertで文字化けが...
-
Smarty(tplファイル)でJavaScri...
-
ひとつの外部ファイルに複数の...
-
javascript内で外部ファイルを...
-
<a href="#" …>の意味を教えて...
-
bodyにidをつける理由は何ですか?
-
base64encodeでの文字化けについて
-
javascriptでalertの文字列をコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルのfunctionの読み込み方
-
複数のJavascriptを1つのscrip...
-
Dreamweaver で 外部JSを読み込...
-
javascriptとApacheの設定
-
【Google Apps Script】「ライ...
-
cssにjavascriptを入れる?呼び...
-
JavaScriptのエラー ( 関数の...
-
ひとつの外部ファイルに複数の...
-
javascriptファイルは1つに統...
-
JavascriptとJqueryを混在し記述
-
<script src="">読み込まない
-
javascriptのalertで文字化けが...
-
レンタルサーバーでjavascript...
-
javascript内で外部ファイルを...
-
外部読み込みで動かないときの...
-
外部ファイルを実行
-
プルダウンメニューを別ファイ...
-
ホームディレクトリを示すチル...
-
外部.jsの内容を一部置き換えて...
-
xmlHttpRequest.send( EncodeHT...
おすすめ情報