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

お世話になっています。
現在、スタイルシートのvisibility属性を利用してリンクをクリックすると、見えなかったテーブルを表示させる、というサンプルを作っています。
しかし、テーブル内にスタイルシートの設定を入れた途端、Netscape4のみ動作しなくなりました。(「#この部分が~」のところです)
原因が分かれば、教えていただきたいと思います。
ソースは次の通りです。

function hyoji(lay){
if(document.getElementById) {
document.getElementById(lay).style.visibility = 'visible';
}
else if(document.all) {
document.all(lay).style.visibility = 'visible';
}
else if(document.layers) {
document.layers[lay].visibility = 'show';
}
}

<A HREF="javascript:hyoji('test0')">ZERO</a> 
<A HREF="javascript:hyoji('test1')">ONE</a>
<A HREF="javascript:hyoji('test2')">TWO</a>

<div id = "test0" style="position:absolute; top:100px; left:100px ;visibility:hidden">
<table border=3>
<tr>
<td bgcolor=teal>ZERO</td>
</tr></table></div>

<div id = "test1" style="position:absolute; top:200px; left:100px ;visibility : hidden">
<table border=3>
<tr><td bgcolor=hotpink>
#この部分が問題?
<span style="line-height:120%">ONE</font></td>
</tr></table></div>

<div id = "test2" style="position:absolute; top:150px; left:100px; visibility : hidden">
<table border=3>
<tr><td bgcolor=hotpink>TWO</td></tr>
</table>
</div>

A 回答 (2件)

再び失礼します。



私自身は、Netscape 4のDHTMLについてはあまりよくわかっていないので、スクリプトが間違っているかどうかは判断しにくいのですが… スタイルシートの適用前に正常に動作していたのであれば、スクリプト的には問題がないと判断していいと思います。
Netscapeでは、JavaScriptでエラーが出たときに、そのエラーの内容などをJavaScriptコンソールで確認できたと思います。 もし、そこに具体的にエラーメッセージが出ているとしたら、それが原因の究明に繋がるかもしれません。 そちらの方も、一度確認されると良いと思います。

とりあえずですが、タグ内でスタイルシートを定義するのではなくて、Head内でスタイルシートを定義しておいて、class属性やid属性などをセレクタとして利用して、目的の部分にスタイルを適用する形にしてみるのは、いかがでしょうか。 これが対策になるかどうかは、まったくわからないのですが…

あまり的を射ない話ばかりですみません。
    • good
    • 0
この回答へのお礼

いえ、こちらこそあまり要領を得ない質問で申し訳ありません・・・。
Netscape4の場合、Class属性を利用した方がいい、というのは別の場所で聞いておりましたので、ともあれhead内で定義して使うようにしたいと思います。

なお、蛇足ですがコンソールで確認すると、lay部分が取得できないとなっていました。
やはり実装が問題なのでしょう、ということにいたします。

ありがとうございました!

お礼日時:2003/02/26 00:01

直接の原因がわかる訳ではないのですが、ちょっと気になったところがあります。


問題として疑っている部分ですが、スタイル指定の入った要素が、開始タグは<span>なのに、終了タグが</font>になっています。 このせいで、その部分以降のHTMLが正常に解釈されずに、スクリプトの動作も停止している可能性も考えられるのではないでしょうか。

もしそこが原因ではないとしたら、ちょっと原因の見当がつかないのですが…
Netscape 4のCSSの実装はひどいバグだらけですので、仕様でそうなっているという可能性は否定しきれないかもしれません。

見当違いでしたら、ごめんなさい。
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。
申し訳ありません、</span>が</font>になっているのはここへ質問する時、出来るだけ字数を少なくしようと、ソースを削っていて出たミスです。
実際は、</span>できちんと囲まれています。
Netscape4の実装がひどいのは聞いていますが、自分のスクリプトに自信がないので、まず原因はそこだろうと思い、質問しましたが…。
やはり、そもそもの実装の問題になるのでしょうか。
だとしたら解決方法がないので、この質問はクローズいたします。

お礼日時:2003/02/25 20:00

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