• ベストアンサー

入力したテキストボックスのデータを別Webページに渡したい

テキストボックスを持つ2つのWebページ(A.html,B.htmlとします)があります。 A.html内にB.htmlを開くJavaScript (window.open("B.html");)を記述しています。 このスクリプトを実行したらB.htmlを新しいウィンドウで開きますが、 このBページ内のテキストボックスに文字データを入力して、 OKを押したら、A.htmlのテキストボックスにデータを表示させたいのです。 こういうことはJavaScriptだけでできないのですか? cgi+JavaScriptを使わないとできないのでしょうか? フレーム間の場合はできそうですが、ウィンドウ間と言うのは出きるのか 不明です。 ご存知の方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sight
  • ベストアンサー率53% (199/370)
回答No.2

説明のために、 A.html、B.htmlのフォーム、テキストボックスをそれぞれform_a、form_b、txtbox_a、txtbox_b としますね。 B.html内で、テキストボックスの文字データは document.form_b.txtbox_b.value と表せます。同様に、A.html内で、テキストボックスの文字データは document.form_a.txtbox_a.value と表せます。 ここで、B.htmlはA.htmlから開いた子ウィンドウですので、B.htmlから見てA.htmlは「このウィンドウを開いたウィンドウ」と表すことができるため、 window.opener でアクセスできます。 つまり、B.htmlで、JavaScriptで window.opener.document.form_a.txtbox_a.value = document.form_b.txtbox_b.value ; と表記すれば実現できるかと思います。

zerosix
質問者

お礼

分かりやすい解説、どうもありがとうございました。 私もopenerを操作してみるとできることにきづいてしまいました。 お時間とって申し訳ありませんでした。 まだまだオブジェクトについて理解不足です。上の回答ページを参考に 勉強します。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

B.htmlの方に <SCRIPT LANGUAGE="JavaScript"> <!-- function SetText() { window.opener.document.FORM.text.value = document.f2.t2.value; } // --> </SCRIPT> を記述して、B.htmlのフォームのボタンが押されたら呼び出すようにして下さい。 window.openerはB.htmlを開いたHTML(つまりA.html)のことを指していて、 FORM、textはそれぞれA.htmlのフォームとその中のテキストボックスの名前です。 f2、t2はB.htmlの方のそれになっています。

zerosix
質問者

お礼

分かりやすい解説、どうもありがとうございました。 私もopenerを操作してみるとできることにきづいてしまいました。 お時間とって申し訳ありませんでした。

すると、全ての回答が全文表示されます。

関連するQ&A