※ ChatGPTを利用し、要約された質問です(原文:<DIV id=""></DIV>勘でいれたら・・・)
フレーム分割による表の表示方法についての質問
このQ&Aのポイント
JavaScriptを使用して、画面を左右にフレームで分割し、左フレームのリストボックスから要素を選択すると、右フレームに該当した表が表示される方法について教えてください。
質問者が作成したプログラムでは、右と左のフレーム両方に表が出力されてしまいます。しかし、予想では特定の場所に<DIV>タグを追加することで、右フレームだけに表を表示することができました。なぜこのような結果になったのかが分かりません。
質問者は期待通りの動作ができるように、特定の場所に<DIV>タグを追加しました。しかし、なぜこの追加が必要なのかが分からない状況です。教えてください。
<DIV id=""></DIV>勘でいれたら・・・
はじめまして。JavaScript初めてです。
わからないことがあるので、教えてください。
画面を左右にフレームで分割して、左フレームのリストボックスから要素を選択すると、その要素に該当した表が右フレームに表示される、というものを作成しました。
左フレーム:name = index
右フレーム:name = main
こんな感じ(左フレーム)↓
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function disp(obj){
右フレームの表のHTML作成をしている
parent.main.document.open();
parent.main.document.write
(desc.innerHtml = 上で作成したHTML);
parent.main.document.close();
}
-->
</SCRIPT>
</HEAD>
<BODY onload="disp(form)">
※<DIV id="desc"></DIV>
<FORM name="form">
<SELECT name="MListBox" onchange="disp(form)">
<xsl: apply-templates select="~"/>
</SELECT>
</FORM>
*<DIV id="desc"></DIV>
</BODY>
</HTML>
・
・ <xsl文章>
・
初めは、※←のところがなく、右と左のフレーム両方に表が出力されてしまっていました。でも※←のところに<DIV id="desc"></DIV>を勘で入れたとたん、右フレームだけに表が出力されるようになりました。(期待の結果)
自分の予想では、*←のところのみで期待の結果が得られる予定で、(disp()でHTMLの出力を右フレームに指定しているから)何故※のところを追加したことで期待通りの動きをしたのかが謎です。
わかりづらい説明で申し訳ないですが、教えてくださる方がいらっしゃいましたら、どうぞお願いします。
お礼
お返事ありがとうございました。 粗末な説明で正確なアドバイスをいただき感謝しています。 上記にあります通り、*の部分を消去し、動作させましたところ、左右両フレームにおいてHTML文章が実行されてしまいましたので、スクリプト内の記述を変更しましたところ、意図した結果となりました。 勉強になりました。本当にありがとうございました。