WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:テキスト表示の切り替えをネットスケープで

0:[投稿] じゃむ [2003/02/08 19:57 ][環境:IE5.0 IE6.0SP1 Netscape 6.2.3 Apache]

はじめて書き込ませていただきます。

表題のようなことをネットスケープで実行したく悩んでおります。
IEではinnerHTMLを使用して動作するのですが、ネットスケープではサポートしていないエレメント?のようで動作しません。

ボタンを早くクリックすると反応が遅れるのも気になりますが、何より動くことが先決です。

どなたか解決方法をご教授いただけないでしょうか。

下記に使用しているコードを記述させていただきます。

よろしくお願いします。

<html>
<head>
</head>
<script language="JavaScript">
<!--
//表示文字列の切り替え
function change() {
 //現在の文字列を取得し、異なった文字列を表示する
 if(document.all.test.innerHTML == "切り替え前"){
   document.all.test.innerHTML = "切り替え後";
 
 }else if(document.all.test.innerHTML == "切り替え後"){
   document.all.test.innerHTML = "切り替え前";
 
 }else{
   //なんかおかしな動きしたらこっち
   document.all.test.innerHTML = "?????";
 }
}
// -->
</script>
<div id="test">切り替え前</div>
<br>
<button onclick="change()"> 切り替えボタン </button>
</body>
</html>


1:[回答] undefined [2003/02/08 23:19 ]

>ネットスケープではサポートしていないエレメント?のようで動作しません。

document.all や innerHTML は MSIE の独自拡張です。
innerHTML についは、Netscape 6以降や Opera 7 でも実装されています。
DOM について勉強されては如何でしょう。
http://www.parkcity.ne.jp/~chaichan/src/javascdom00.htm

取敢えず、以下の様な感じで如何でしょうか。

<html>
<head>
<title>表示文字列の切り替え</title>
<script type="text/javascript">
<!--
function change() {
 var test = document.getElementById("test");
 var flag = (test.className != "before");
 test.firstChild.nodeValue =
   (flag ? "切り替え前" : "切り替え後");
 test.className = (flag ? "before" : "after");
}
// -->
</script>
</head>

<body>

<div id="test" class="before">切り替え前</div>
<p><button onclick="change()">切り替えボタン</button></p>

</body>
</html>


2:[完了] じゃむ [2003/02/09 12:57 ]

ありがとうございます。

DOMですか。
勉強不足でした。

これを使えばかなりの動作がjavascriptで可能になりそうですね。

さっそく勉強させていただきます。

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


3:[完了] ma-to [2003/02/09 19:01 ]


(関連)

二次情報を否定するわけではないが、DOM に関するそれらは、殆ど全てが「全く理解しないで」書かれているか、そうした二次情報を複写しているに過ぎない。

オブジェクト指向ではない言語で実装している実例もあるが、個人的には意味がないと感じる。だから、というわけではないが、
http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/java-binding.html
が一番分かり易い。構造だけ (extends) を追っていくと、「DOMの特徴は何と言ってもHTMLの文書構造そのまま 」という誤解に気付くはず。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World