JavaScriptで質問です。

下記の関数で、大抵のブラウザでテキストの切り替えが出来るようになったのですが、NetScapeだけ、表示できません。
原因は何でしょうか?
※ちなみに、下記のソースのFireFoxをMozillaに変えても無理でした。

function insertText(area, value){
  if (navigator.userAgent.indexOf("Firefox") > -1) {
   document.getElementById(area).textContent = value;
  }else{
   document.getElementById(area).innerText = value;
  }
}

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/04/14 09:56:49
  • 終了:2007/04/16 05:13:13

回答(3件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912007/04/14 10:16:58

ポイント27pt

チェックするときの、文字列は Netscape だったでしょうか?

JavaScript は 大文字、小文字を識別するので NetScape だと一致しないと思います。


デバッグ時は、チェックの始めに

   alert( navigator.userAgent );

等で確認するのも有効な手段だと思います。


イヌでもわかるJavaScript講座 ブラウザバージョンの取得

id:makocan

一応は、判定は間違ってなかったと思います。

意図した条件分岐に処理は行ってるので。

うーん。。。

2007/04/14 16:59:55
id:susie-t No.2

susie-t回答回数99ベストアンサー獲得回数182007/04/14 22:38:16

ポイント27pt

Netscape7.1で試しましたが、textContentもinnerTextも使えないようです。(というか、要素のプロパティとして存在していない)

Netscapeでも動作させるためには、innerHTMLを使うのが手っ取りばやいです。ただ、タグ等がエスケープされないので、innerTextと同じ挙動にしたい場合は以下のようにします。

<html>
<head>
<script>
<!--
function insertText(area, value){
  var elem = document.getElementById(area);
  elem.innerHTML = "&nbsp;";
  elem.firstChild.nodeValue = value;
} 
//-->
</script>
</head>
<body>
<div id="test"></div>
<input type="button" value="test"onclick="insertText('test', '<b>AAAA</b>');"/>
</body>
</html>

参考になれば幸いです。

ダミー:http://q.hatena.ne.jp/

id:makocan

解決しました!

ドモです!

2007/04/16 05:13:01
id:Mook No.3

Mook回答回数1312ベストアンサー獲得回数3912007/04/15 10:38:54

ポイント26pt

ブラウザのバージョンというよりは、JavaScript の方言の問題でしょうか。

下記では IE, FireFox, Netscape で動作しました。

<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!---
function insertText(area, txtValue){
    document.getElementById(area).innerHTML = txtValue;
}
// --->
</script>
</head>
<body>
    <form name="myForm">
    <p id="myText">---</p>
    <input type="button" name="myButton" value="Click Me!" onclick="insertText( 'myText', 'Hi there!!' );">
</body>
</html>

実際の area にあたる部分が明示されていないのでなんともいえませんが、ブラウザによって、使えないプロパティもあるのでその辺りを確認してはどうかと思います。

Dynamic HTMLの基礎

mozila サポートされない DOM 関連プロパティ

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません