準・究極の選択

はじめまして。ブラウザ判定でIEの場合フラッシュ、それ以外のブラウザは静止画像を表示するという処理を行いたいと思います。
それに加えてフラッシュを.jsファイルで外部呼出しを行いたいのですが上手くいきません。(コントロールをアクティブ~のメッセージを出さない為)
すみませんが、アドバイスの方をよろしくお願いいたします。
以下ソースです。(文字制限があるので一部省略してます)
<SCRIPT language="JavaScript">
<!--
//(IEブラウザ)
if (navigator.userAgent.match(/MSIE (\d\.\d+); Windows/)) {
document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia~#version=6,0,0,0" width="481" height="150">');
document.write('<param name="WMODE" value="Transparent" />');
document.write('<PARAM name="MOVIE" value="top/top.swf">');
document.write('<EMBED src="top/top.swf" width="481" height="150" type="application/x-shockwave-flash">');
document.write('</embed>');
document.write('</object>');}
//(NNブラウザ)
else{
document.write("<IMG SRC='top/nntop.gif' WIDTH='481' HEIGHT='150' BORDER='0'>");}
//-->
</SCRIPT>

以上のものをまとめたいのですが、IE以外のブラウザ判定の時におかしくなってしまいます。else以降の文章がhtmlとして表示されてしまいます。↓(NNで確認)
<SCRIPT language="JavaScript">
<!--
if (navigator.userAgent.match(/MSIE (\d\.\d+); Windows/)) {
document.write('<script src="top/top.js"></script>');
}
else{document.write("<IMG SRC='top/nntop.gif' WIDTH='481' HEIGHT='150' BORDER='0'>");}
//-->
</SCRIPT>
お手数ですがご助力願います。

A 回答 (2件)

document.write('<script src="top\/top.js"><\/script>');


これで良いと思います。
    • good
    • 0
この回答へのお礼

ご解答ありがとうございます。
うまく処理をすることができました!
\が必要だったんですね。大変助かりました。ありがとうございました。

お礼日時:2006/10/31 11:15

まず、document.write('<script src="top/top.js"></script>');


という処理にはかなり無理があると思われます。
とりあえず上のブラウザ判定も含めた処理を纏めて外部ファイル化し、HTML内では外部呼出し一本で済ませるのが良いのではないかと思われます。

で、NNでの動作不具合ですが、私の環境(Window2000+NN7.1)では再現しませんでした。
可能性として考えられるのは、
| document.write('</object>');}
| //(NNブラウザ)
| else{

この部分ですね。
お使いのNNのバージョンに、なにか不具合があって、 } と else の間にコメントを入れると、以降が処理されないのかもしれません。
試しに
document.write('</object>');
} else {
//(NNブラウザ)

という書式に代えてみてください。
それでもダメであれば、コメントを全て削除してみれば、もしかすると、直るかもしれません。
    • good
    • 0
この回答へのお礼

ご解答ありがとうございます。
document.write('<script src="top/top.js"></script>');
これは自分で作っていてもかなり無理のあるソースだとは思ったのですが…とりあえずIEでは上手くいったのでこれでやってみました。
>ブラウザ判定も含めた処理を纏めて外部ファイル化し、HTML内では外部呼出し一本で済ませる
これがソースとしてもすっきりしていて理想的なのですが、上手くいかなかったので。もうちょっと頑張ってみます。ありがとうございました!

お礼日時:2006/10/31 11:14

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