お世話になっています。
現在、スタイルシートの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>
No.2ベストアンサー
- 回答日時:
再び失礼します。
私自身は、Netscape 4のDHTMLについてはあまりよくわかっていないので、スクリプトが間違っているかどうかは判断しにくいのですが… スタイルシートの適用前に正常に動作していたのであれば、スクリプト的には問題がないと判断していいと思います。
Netscapeでは、JavaScriptでエラーが出たときに、そのエラーの内容などをJavaScriptコンソールで確認できたと思います。 もし、そこに具体的にエラーメッセージが出ているとしたら、それが原因の究明に繋がるかもしれません。 そちらの方も、一度確認されると良いと思います。
とりあえずですが、タグ内でスタイルシートを定義するのではなくて、Head内でスタイルシートを定義しておいて、class属性やid属性などをセレクタとして利用して、目的の部分にスタイルを適用する形にしてみるのは、いかがでしょうか。 これが対策になるかどうかは、まったくわからないのですが…
あまり的を射ない話ばかりですみません。
いえ、こちらこそあまり要領を得ない質問で申し訳ありません・・・。
Netscape4の場合、Class属性を利用した方がいい、というのは別の場所で聞いておりましたので、ともあれhead内で定義して使うようにしたいと思います。
なお、蛇足ですがコンソールで確認すると、lay部分が取得できないとなっていました。
やはり実装が問題なのでしょう、ということにいたします。
ありがとうございました!
No.1
- 回答日時:
直接の原因がわかる訳ではないのですが、ちょっと気になったところがあります。
問題として疑っている部分ですが、スタイル指定の入った要素が、開始タグは<span>なのに、終了タグが</font>になっています。 このせいで、その部分以降のHTMLが正常に解釈されずに、スクリプトの動作も停止している可能性も考えられるのではないでしょうか。
もしそこが原因ではないとしたら、ちょっと原因の見当がつかないのですが…
Netscape 4のCSSの実装はひどいバグだらけですので、仕様でそうなっているという可能性は否定しきれないかもしれません。
見当違いでしたら、ごめんなさい。
回答、ありがとうございます。
申し訳ありません、</span>が</font>になっているのはここへ質問する時、出来るだけ字数を少なくしようと、ソースを削っていて出たミスです。
実際は、</span>できちんと囲まれています。
Netscape4の実装がひどいのは聞いていますが、自分のスクリプトに自信がないので、まず原因はそこだろうと思い、質問しましたが…。
やはり、そもそもの実装の問題になるのでしょうか。
だとしたら解決方法がないので、この質問はクローズいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
ジャバスクリプトについて。
-
①入力フォーム→②確認表示画面→③...
-
指定時間になったら、WEBサイト...
-
アップロードファイルの種類に...
-
スマホ上で、左右スワイプで次...
-
jQueryで同じクラス名のものを...
-
jsで質問です。 displayプロパ...
-
【Google Apps Script】「ライ...
-
階層別の組織図の自動作成について
-
特定の文字列を複数抜き出した...
-
セレクトを全て選択されていな...
-
二次元配列の全要素の全要素を...
-
読み込んだQRコードをフォーム...
-
初心者です。gulpでコンパイル...
-
セレクトボックスで配列を呼び...
-
Googleフォームで選択肢に応じ...
-
変数名をどのようにつけるのが...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
jsで質問です。 displayプロパ...
-
画面遷移を行わずに同一ページ...
-
Googleフォームで選択肢に応じ...
-
特定の文字列を複数抜き出した...
-
フロントエンドフレームワーク...
-
変数名をどのようにつけるのが...
-
【JS】selectでchangeした時の...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
指定時間になったら、WEBサイト...
-
Colorboxがうまく設置できません
-
二次元配列の中の各行の要素を...
-
読み込んだQRコードをフォーム...
-
IndexedDB を使ってファイルア...
-
HTMLで作った時報アプリが動き...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
-
①入力フォーム→②確認表示画面→③...
おすすめ情報