- ベストアンサー
JavaScript のネスケ用の記述
お世話になります。 IEでは成功したのですが、ネスケでは表示されません。 下記は同一画像にユニーク id 名を付けながら、縦に6枚画面表示する記述です。 宜しくご教授お願い致します。 <html> <head><title>test</title> <style type="text/css"><!-- .abs { position:absolute; } //--></style> <script type="text/javascript"><!-- function myFuncFirst(){ var myTop=10; //表示画像の位置 for (i=6; i>0; i--){ // 同一画像を縦に表示ループ if (document.all) { //IE 用 document.write("<span style=position:relative;top:" + myTop + ";left:100>", "<img id=E" + i + " src="test.gif" + "width=100 height=20 class=abs>","</span>"); } else if (document.layers) { //ネスケ 用 ここが解りません。 } myTop=myTop +20 // 次の表示画像の位置 } } //--></script> </head> <body> </body> </html>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
if(document.layers){ document.open() document.write('Netscape4') document.close(); }else if(document.all){ document.write('IE'); }else if(document.getElementById){ document.write('Netscape6 / Opera'); } で分別できます。 # 動作確認WIN:IE5.5/NC4.7/NN6/NN7/Opera6.03 write内容を、最初に一括して変数に入れておくといいかもですね。 もしくは span→div にしないと、NC4はダメかもです。
その他の回答 (1)
- selene_pl
- ベストアンサー率49% (102/207)
Netscapeは、4.x以前と6.0以降で、ほとんどJavaScriptの互換性がなくなっているので、注意が必要です。 document.layersは4.xまででしか使えないので、6.0以降では、 document.getElementByIdを使うみたいです。 ただ、これだとIEの5.xでもTRUEになってしまいますが。(6.xは未確認) それで、この場合のスクリプトですが、見る限りでは全てのブラウザで 互換性があるものしか使っていないようなので、 ブラウザごとに場合分けする必要はないように思います。 とりあえず、if文を外して、動作確認してみてください。
お礼
ご対応ありがとうございます。 IF 文なしでネスケ6と7は全く画像が表示できませんでした。 ネスケにはまだまだ振り回されそうですので、 今後も宜しくお願い致します。
お礼
ご対応ありがとうございます。 ご親切にOperaや、span→divまでの忠告に助かりました。 ネスケにはまだまだ振り回されそうですので、 今後も宜しくお願い致します。