JavaScriptの「document.all」というfunctionは、netscape4.0では使えないんですか?

[上に] [前に] [次に]
よしこ 1999/07/15(木) 16:24:41
JavaScriptを使ったページを作成中です。
「document.all」というfunctionを使って画像を表示させたり非表示にしたりしてみました。
ちなみに、表示・非表示をしている画像は3種類、また、そのうち2種類はクリッカブルマップです。
IE4.0では成功しましたが、Netscape4.0では、エラーがでました。
エラーは「document.all」はfunctionでない様なことが書いてありました。
Netscape4.0でもうまく行かせるには、なにか、良い方法はあるでしょうか?

Tmb 1999/07/15(木) 17:13:02
えーと,まずはツッコミですがプログラム関係でfunctionと言うと「機能」では
なく「関数」という意味合いの方が強いです。functionでないと言われるのは,
Netscapeがdocument.allというオブジェクト(この場合こう呼ぶ方がよいかと)
をサポートしておらず,ユーザーの自作した関数だと判断してるけど,当然
そんな関数は作ってないから「allなんてfunctionありませんよ」と言ってるの
だと。

document.allはIEのDHTMLに属するものなので,NNでは使えないです。
DHTMLに頼らずに画像を指定するにはdocument.images[0]とか
document.images["img1"]というものが画像を表すオブジェクトになります。

ただ,画像の表示/非表示を切り替えるということがそもそもDHTMLによる
機能ですから,結局は使えないかと。
代替方法としては,透明GIFの画像を用意しておいて,画像の書き換えと同じ
要領でdocument.images[].srcを変えてやるなんてどうでしょう?

ただ,このやり方だとクリッカブルマップも問題になりますね。
クライアントサイドの方(<IMG USEMAP="">を使うもの)だと勝手に
推測してみますが
<AREA href="hoge.html">を
<AREA href="javascript:if (document.images['img1'].src != 'http://中略/toumei.gif')location.href='hoge.html';">
にしてみるなんてどうでしょうか>>試してないので何ですけど。

zizz.. [HomePage] 1999/07/15(木) 19:55:35
> 透明GIFの画像を用意しておいて,画像の書き換えと同じ
> 要領でdocument.images[].srcを変えてやるなんてどうでしょう?

Netscape 3.Xで、
画像を透明GIF画像に変えた時、書き換え前の画像が下に写るという
バクがあるバージョンがあったような気がします。
(手元の3.01では起きないけど。)

背景色と同じ色の画像を使った方が良いのではないですか?
背景に画像を使っている場合は知りませんが。

とほほ 1999/07/15(木) 22:21:32
Netscapeの場合は、レイヤのvisibility使うことで、文字列や画像の
表示・非表示制御が可能です。下記のページにサンプルがあります。
http://www.tohoho-web.com/wwwxx023.htm

よしこ 1999/07/21(水) 18:35:26
[[解決]]
解決しました!!
ありがとうございました。

[上に] [前に] [次に]