CGI-BBS > JAVA/JavaScript > JavaScript > JavaScriptについて画像とテキストを同時に変更したい。


カレッヂ
カレッヂ


質問者 たろ  投稿日 4/28(月) 11:54:30
こんにちは。
画像とTEXTを同時に変更したくて下記のスクリプトを書いたのですが
画像は表示できるのですが、TEXTを変更する時点でエラーが出てしまいます。
エラー内容は「'documents.A2はNullまたはオブジェクトではありません。」

function ImageChange(data){
	document.images["a2"].src = imagefile[data];
  	document.layers["A2"].document.open();
	document.layers["A2"].document.write("<B>comment[data]</B>");
	document.layers["A2"].document.close();
	}

---本文---

<LAYER Name="A2">
<DIV style="top : -204px;left : 264px;
  position : absolute;
  z-index : 3;
  visibility : hidden;
  width : 203px;
  height : 32px;
" id="A2"></DIV></LAYER>

根本的に考え方が違うのでしょうか?
よろしくお願いいたします。

プロバイダ参照:
サーバのOS:(未選択)
パソコンのOS:WinNT系
エディタ:
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:middle

回答者 cen_picture21  [削除]  投稿日 5/2(金) 17:20:24
エラーがでるブラウザが解ると的を得た説明を詳しくできるのですが残念です。
以下大変失礼ですが、推測で話を進める事をご理解ください。
document.images["a2"].src = imagefile[data]
でIE4.0以上用NN6用で使用するsrc属性でうまくいったそうなので
多分これらのブラウザだとして
IE4.0以上にはinnerTextやタグを追加して変更するのならinnerHTMLを使用してください。
NN6用にはdcument.createTextNode("")
	.appendChild()
	.removeChild()で対応します。
前述の
	document.layers["A2"].document.open();
	document.layers["A2"].document.write("");
	document.layers["A2"].document.close();
の部分を
IE6で動作確認した場合には
エラーが「'document.layers.A2'はNullまたはオブジェクトではありません。」がでます。
<LAYER>タグを利用してのスクリプトはNN4.X用だと思いますがどうでしょうか。
質問者 たろ  [削除]  投稿日 5/2(金) 22:59:53
cen_picture21さん、ありがとうございます。
的確なご指摘、ヒント本当にありがとうございます。
下記のスクリプトで無事に画像とTEXTを表示することが出来ました。
ちなみにエラーがでるブラウザは、IE6.0でした。

function ImageChange(data){
	document.images["a2"].src = imagefile[data];      
	if(document.all){
		document.all("A2").innerHTML = comment[data];
	}else if(document.layers){
		document.layers["A2"].document.open();
		document.layers["A2"].document.write(comment[data]);
		document.layers["A2"].document.close();
	}else if(document.getElementById){
		document.getElementById("A2").innerHTML = comment[data];
	}
}

返信(回答)する

 


Web裏技