• ベストアンサー

入力したテキストボックスのデータを別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

  • フレームを利用してのWebページの操作

    こんにちは。JavaScriptについてはほとんど初心者なので 教えていただきたいのですが、 フレームAのページでテキストボックスに入力したデータをボタンを押すことでフレームBのテキストボックスに、 書き込むことは可能でしょうか? JavaScriptサンプル集のページを参考に実験してみたところ、フレームA・フレームBのHTMLが自分のPC上にある場合は可能だったのですが、フレームBをWebページに指定すると途端にできなくなりました。テキストボックスの場所の指定も正しくできているのですが・・・ 参考ページ等、何かご存知でしたらお教え下さい。 よろしくお願いいたします。

  • テキストボックスに入力された内容を他のテキストボックスにコピーしたい

    テキストボックスA、Bがあるとして、テキストボックスAに何らかの文字列を入力します。 その状態でボタンを押すと、テキストボックスAの内容をテキストボックスBにコピーするようにしたいのですが、このようなことはjavascriptで可能でしょうか?

  • 特定の時間帯だけ有効にする

    以下のスクリプトはウィンドウを同時に2つ開くものですが、20~23時の時間帯だけスクリプトを有効にしたいです。 どのように記述すればできますか? <SCRIPT TYPE="text/javascript"> <!-- function WindowOpen(){ window.open("ttp://192.168.0.12/cgi-bin/music/","window","toolbar=no, height=200, width=200"); window.focus(); } //--> </SCRIPT> </HEAD> <BODY> <A HREF=ttp://192.168.0.12/ onClick="WindowOpen();window.focus();">トップページへ</A>

  • 【FireFox】サブウィンドウ表示とテキストボックス値

    メインのウィンドウにテキストボックスとボタンがあり、 ボタンをクリックするとjavascriptによりサブウィンドウ が開くHTMLがあります。 しかし、FireFoxに限り、ボタンを押してサブウィンドウ を開くとメインのHTMLのテキストボックスに入力していた 値が消えてしまいます。 ================ main.html ===================== <html> <head> <script Language="JavaScript"><!-- function openSubWin(){ window.open("sub.html","window","width=300,height=300"); } // --></script> </head> <body> <form action="#" name="myform"> <input type="text" name="no"> <button id="button1" onclick="openSubWin();" >サブウィンドウ</button> </form> </body> </html> ================== サブウィンドウ ================ <html> <body> サブウィンドウ </body> </html> IEでは問題ありませんでした。 何か解決方法はありますでしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML
  • テキストBOXの情報をもとにリンクさせる方法

    ボタンを押したら、テキストBOXに入力された情報をもとに、 新しいwindowにリンクさせる方法を教えてほしいのですが・・・。 『?????』の部分にテキストBOXから入力された情報を入れたいのです。 ちなみに、リンクさせたい場所は、自分のPCのtestというフォルダのファイルです。 <input type="button" name="show" value="表示" onClick="show()"> <SCRIPT LANGUAGE="JavaScript"> <!-- function show(){ window.open("/test/?????.jpg","") } //--> </SCRIPT>

  • フレームページから別フレームのアンカーへ

    あるフレームAからフレームBへ移るとき、 同時に子ページのアンカーへもリンクのさせたいのですが、 検索しても「いくつか方法がある」という記述は発見できたものの、 そのものズバリ、Javascriptが記述されたページが見つからず、 途方に暮れています。 a.html(フレームA)  a-1.html  a-2.html b.html(フレームB)  b-1.html  b-2.html   #b-2a、#b-2b、#b-2c・・・ 上記のような場合なのですが、 単純に考えればb-2.htmlのそれぞれのアンカーを指定した フレームページをアンカーの数だけ作ればよいのですが、 アンカーが数百単位で存在し、 フレームBだけではなくフレームC、D、E・・・と フレーム自体も数が多いので、後々のメンテナンスを考えると Javascriptで行う方が良い気がしています。 どなたか解決方法をご存知でしょうか?

  • プルダウンからテキストボックスに入力

    プルダウンから選択したものをテキストボックスに表示させています。 <script type="text/javascript"> function displayText(thatOption, textId) { var text1 = document.getElementById(textId); text1.value = thatOption.title; } </script> <SELECT onchange="displayText(this.options[this.selectedIndex], 'text1');"> <option value="1" title=""></option>  #空欄 <option value="2" title="A">A</option> #大文字 <option value="3" title="a">a</option> #小文字 </SELECT> <input type="text" value="" id="text1"> プルダウンを2個や5個など複数用意して、それぞれ選択したものをテキストボックス1行に 続けて表示させたいです。 上記のプルダウンをA~Eまで用意した場合、[A b C D e]と表示させたり、Cは選ばず 空欄を選択した場合は、[A b D e]と表示させる事は可能でしょうか? また、テキストボックスにvalue="ZZ"と初期表示を入れて、その後に 続くように表示させたいです。 [ZZ A b C D e]とする事は可能でしょうか?

  • textデータをWebページに読込むJavaScript

    GoogleAdsenceでは、JavaScriptを組み込んだWebページから、別のファイルのデータを読込んで表示する仕組みになっていますが、これはどうしたら出来るのでしょう。 別にGoogleみたいにWebページを解析してデータを表示したいとか大それたことじゃなくて、自社のホームページに、最新情報をTEXTで1~2行表示しているのですが、しょっちゅうそれが変わります。そしてその文章を作る人がHTMLがわからないので、変更する時に私がWebページをいちいち更新しています。 できればその人がCGIフォームで最新情報を入力すれば、WebサーバーにData.txtみたいなファイルに内容が保存されて、それを表示するWebページの一部にJavaScriptでData.txtの内容を読込んで表示する、という感じにしたいのですが・・・私のいわんとすることわかりますでしょうか

  • ページ間のデータの受け渡しについて

    こんにちは、初歩的な質問で申し訳ございません。 ページからページへのデータ渡し方についての質問なのですが、 例えば以下のような2つのファイルがあったとして、 【index.html】 <script type="text/javascript"><!-- function openwin() { mywin = window.open("http://10.8.2.166/id.php","",""); } //--></script> <input type=text name=id><br> <input type=submit value=ID検索 onclick="openwin()"> 【id.php】 $sql = "select * from s_table where s_id = '『ここにテキストボックスの値を入れたいです』' ・ID検索ボタンをクリックした時、テキストボックスに入力している値を、id.phpのSQL文のwhere条件に入れたいのですが上手く作成する事ができません。 どなたかご存知の方がいらっしゃいましたら、アドバイス宜しくお願い致します。

  • 別のページにデータを送るには?

    JavaScriptで、別のページにデータを送るにはどうしたらよいのでしょうか。 1ページ目でテキストボックスに入力した文字列を、 2ページ目で、あらかじめ用意した文字列と一致するかどうかチェックする、 というのをやりたいのですが、なにぶん初心者なもので、どうも何かに失敗しているらしくうまくいきません。 一応、JavaScript解説のサイトさんを参考にこんなもんを作ってはみたのですが。 1ページ目 <html> <head> </head> <body> <form action="pas2.html" onSubmit="this.box.value=escape(this.box.value)"> <input type=text name=box> <input type=submit value=" 送 信 "> <input type=reset value="リセット"> </form> </body> </html> 2ページ目 <html> <head> </head> <body> <script> val = document.location.search; val = val.split("="); val = unescape(unescape(val[1])); if (val){ if(val==none||val!="pass") val="はずれ" else val="あたり" } else val = "何にも入力されてません。"; document.write(val); </script> </body> </html> これでやってもエラーが出ます…… どうやったらいいのでしょうか。教えてください。