マルチウィンドウでフレーム化されたページでは、サブウィンドウ間の情報のやり取りが一般的です。ナビゲーション ウィンドウでハイパーリンクをクリックした場合、リンクされた Web ページを別のウィンドウで開くにはどうすればよいですか?このウィンドウのボタンを押すと、別のウィンドウにメッセージを書き込めますか?ウィンドウがたくさんあるのですが、どうやってそれらを識別するのでしょうか?以下の例を参照してください。
1. ナビゲーション ウィンドウのリンクをクリックして、別のウィンドウで Web ページを開きます
既存の 1 フレーム ページは上の図のように、ウィンドウ A が Web サイトのロゴと広告、ウィンドウ B がナビゲーション バー、ウィンドウ C がページを表示するウィンドウです。このフレーム付きページのソース コードは次のとおりです。
| <framesetrows=20%,*> <framename=topFramescrolling=NOnoresizesrc=toppage.htm> <framesetcols=18%,*> <framename=leftFramenoresizesrc=leftpage.htm> <framename=mainFramesrc=mainpage.htm> </フレームセット> </フレームセット> |
ウィンドウ B のリンク ページ (test.htm) をウィンドウ C で開く必要がある場合、ウィンドウ B のリンクは次のように記述する必要があります。 <a herf=test.htm target=mailFrame> このリンクのページは次のように記述します。 </a> で重要な役割は、<A> タグのターゲット パラメーターです。そのウィンドウで Web ページを開きたい場合は、そのウィンドウの名前をターゲット パラメーターに設定します。
2. ウィンドウ B のボタンを押して、ウィンドウ C にテキストを 1 行書き込みます。
この例のページ形式は前の例と同じです。完成した結果は次のようになります。ウィンドウ B で [ウィンドウ C に書き込む] ボタンを押すと、「こんにちは! こんにちは! これは Words で書かれたものです」というテキストの行が表示されます。 B ウィンドウ コントロール。」各ウィンドウ内のフレーム化されたページと Web ページ ファイルのコードは、上記の例と同じです。
準備方法:
1. C ウィンドウ Web ページ (mainpage.htm) のソース コード <head> と </head> の間に次の Javascript プログラムを挿入します。
| <script language=JavaScript> <!-- functionhtest(){ document.write(こんにちは! こんにちは! これは B ウィンドウ コントロールを通じて書き込まれた単語です。) } --> </script> |
このプログラムの機能は、現在のウィンドウにテキストを書き込むことです。
2. では、ウィンドウ C のプログラムをウィンドウ B で呼び出すにはどうすればよいでしょうか?まず、ウィンドウ B の [ウィンドウ C に書き込む] ボタンのソース コードを見てください。
| <inputtype=buttonvalue=C ウィンドウでの書き込み onclick=parent.mainFrame.htest()> |
このコードで重要なのは、「parent.mainFrame」というコードです。これは、ウィンドウの構造的関係という新しい概念を導入しています。つまり、マルチウィンドウ ページでは、ウィンドウ間の関係はどのような原則によって決定されるのかということです。ウィンドウの関係を決定する原則は、現在のウィンドウから分割されたウィンドウが現在のウィンドウの「子ウィンドウ」 (子) であり、現在のウィンドウが分割されたウィンドウの「親ウィンドウ」 (親) になります。たとえば、この例のウィンドウ間の関係は次のとおりです。
上表からわかるように、「ブラウザウィンドウ」は「topFrame」と「下のウィンドウ」の「親ウィンドウ」であり、下のウィンドウは「leftFrame」と「mainFrame」の2つのウィンドウの「親ウィンドウ」です。 」。 2 つのウィンドウ間の接続は、それぞれの親ウィンドウを介して行われる必要があるため、この例では、C ウィンドウの Web ページで「htest()」を呼び出すには、明らかに C と B の親を介してから mainFrame に接続されます。次に htest( ) プログラムを呼び出します。
したがって、ウィンドウ C からウィンドウ B にテキストを書き込むコードが次のようなものであるとします。 onclick=parent.leftFrame.htest(); では、ウィンドウ A からウィンドウ C にテキストを書き込むコードの書き方を知っていますか? ?ちなみに、これは onclick=grandchildren.mainFrame.htest() です。
上記の例からわかるように、ウィンドウ間で情報を交換する際の重要な問題は、ウィンドウ間の関係を理解することであり、その他の操作は比較的簡単です。