アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>

A 回答 (2件)

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で表示させると
ちゃんとスタイルシートは読み込まれるのですが、
フレームセットファイルの一フレームとして読み込むと、
スタイルシートを読み込んだり読み込まなかったりします。
読み込まない場合の方が多いです。
フレームセットファイルには、特別なことは記述していません。

対応策をご存じでしたら是非教えていただけると嬉しいです。
よろしくお願いします。

補足日時:2001/04/24 21:10
    • good
    • 0

フレーム使用時の読みこみのタイミング等については、NS4系はバグっています。


読みこみだけではなく、フレームのピクセル指定などもNS4はバグっていまして、
はっきりいうと、あまりまともに相手にするのは止めた方が良いと言うように思います。

あと、CSSを分けて、それをJSで読みこむと言うよりは、CSS.JSというファイルをひとつ用意して、そのJSの中で、ユーザーエイジェント(ブラウザ+OS)に沿ったCSSを吐いた方が、安定した動作が期待できるように思います。
(このときも、document.writeを連発すると、またまた、NSでバグるので、できるだけ、var s="" s+=~; s+=~; とどんどん文字列を連結して、最後に一度だけ、document.writeするのが常套手段です。とにかくNS4は無茶苦茶なのですぐバグるのです。)

まぁ、全体のアクセスの中で、何%ほどMACのMS4系ユーザーがいそうか、一度お調べになって、1日1人とかであれば、それを相手にするよりはコンテンツを充実させた方が総合的には良いでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/04/25 11:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!