- ベストアンサー
ブラウザ判定による画像表示とjavaスクリプト外部呼出し
はじめまして。ブラウザ判定で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> お手数ですがご助力願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
document.write('<script src="top\/top.js"><\/script>'); これで良いと思います。
その他の回答 (1)
- NTJ
- ベストアンサー率44% (46/103)
まず、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ブラウザ) という書式に代えてみてください。 それでもダメであれば、コメントを全て削除してみれば、もしかすると、直るかもしれません。
お礼
ご解答ありがとうございます。 document.write('<script src="top/top.js"></script>'); これは自分で作っていてもかなり無理のあるソースだとは思ったのですが…とりあえずIEでは上手くいったのでこれでやってみました。 >ブラウザ判定も含めた処理を纏めて外部ファイル化し、HTML内では外部呼出し一本で済ませる これがソースとしてもすっきりしていて理想的なのですが、上手くいかなかったので。もうちょっと頑張ってみます。ありがとうございました!
お礼
ご解答ありがとうございます。 うまく処理をすることができました! \が必要だったんですね。大変助かりました。ありがとうございました。