• ベストアンサー

javascriptで開いたウィンドウに値を渡す

javascriptでボタンを押した時に別ページのウィンドウが開き、その開いたページのテキストフィールドに 任意の値を渡したいのですがうまくいきません。 逆に、新しいウィンドウを開いてそのページから親ウィンドウに値を渡す事はできました。 http://ausdruck.flier.jp/test/window/oya.html これの反対バージョンはつくれないでしょうか?御存知の方ご教授お願いします。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

>Firefoxでもできる方法があれば嬉しいです。  前回答では、検証等をちょっと端折ったので気付きませんでしたが function hoge() {field.value=window.opener.field.value;} という記述が略式の書き方なので、問題があったようです、推奨形では getElementById メソッド で エレメント を指定すべきでしたか。。。  pc_web さんご自身が sub.html の中に書いていらっしゃる set() 関数の記述 window.opener.document.getElementById("field").value = document.getElementById("field").value が OK です。  これをそのまま左辺・右辺を入れ替えて function hoge() {document.getElementById("field").value = window.opener.document.getElementById("field").value;} とすれば、Mozilla Firefox も【双方向 OK】となりました。 ●IEだと動くけど、Chromeだと動かない、javascript http://ameblo.jp/goodbath/entry-10769162976.html によると、Google Chrome の場合は、 >自分のパソコン上で動作チェックをする場合は、IEじゃないと上手く動かないみたいです。 >たとえば、URLが『file:///C:/~~~~』となっている場合は、chromeでは動きません。 >サーバーにアップしないと動かないようです。 とのことですので、上記の1点を訂正すれば、Google Chrome でも動いて、全て【双方向 OK】になるかと存じます。

pc_web
質問者

お礼

ありがとうございました!検証したところどちらも大丈夫でした。 他にもいろいろ応用できそうです。

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 ローカル に置いた html で試しましたが、下記のようなことになりました。 1)sub.html の <script> に function hoge() {field.value=window.opener.field.value;} などのような関数を書きます。 2)sub.html の「<body>」を「<body onload="hoge()">」に変えます。 3)oya.html の [field] に文字列を書いて、[open] ボタン を クリック したときに、開かれた sub.html の [field] に、その文字列が入ります。 【双方向 OK】Internet Explorer、Lunascape、Opera、Safari、Sleipnir 【双方向 NG】Google Chrome 【子から親のみOK】Mozilla Firefox  WEB上では テスト しておりません。また、クロスドメイン は NG だと思います。

pc_web
質問者

お礼

ありがとうございます、Safariで確認したところできました。 Firefoxでもできる方法があれば嬉しいです。

関連するQ&A

  • javascriptで開いたウィンドウに値を渡す

    JavaScriptのwindow.openで開いたページに値を渡したいのですが 複数項目ある場合はどうすればいいでしょうか? ▼下記のようなページです。 http://ausdruck.flier.jp/test/window3/oya.html open1ボタンを押すとサブウィンドウのテキストフィールドにその値が入ります。 ひとつだけならできたのですがopen2,open3,open4,open5というふうにそれぞれ違う値を サブウィンドウに渡す事ができません、if文などを使えばよろしいでしょうか? どんな方法でもいいのでご存知の方ご教授お願い致します。

  • javascriptでフォームに値を渡す

    javascriptでサブウィンドウを開き、親ページにあるフォームの値をサブウィンドウのテキストフィールドに渡す方法で複数項目がある場合、下記URLのようにラジオボタンならうまくいったのですが ラジオボタンなしで、ボタンを押すと直接その値をサブウィンドウに渡す方法はないでしょうか? 複数項目ある値をサブウィンドウに渡す(ラジオボタン) http://ausdruck.flier.jp/test/window11/oya_11.html 上記URLの方法ならうまくいったのですが下記URLのようにボタンを押してその値を 直接サブウィンドウに渡したいとおもっています。 http://ausdruck.flier.jp/test/window3/oya.html ▲こちらのイメージで渡したいのですが、複数項目があるとうまくいきません。

  • window.open親から子ウィンドウ内の値

    下記アドレスのように開いたウインドウから親ウィンドウの値を操作する事はできるのですが、これの反対バージョンはできないでしょうか? http://ausdruck.flier.jp/test/window/oya.html ウィンドウをオープンボタンを押した時点で開いた子ウィンドウ内に値を渡す方法です。 いろんな方法を試してみたのですがなかなかうまくいかず困っています、どなたか御存知の方がいましたら御教授お願いします。

  • javascriptでCGIに値を渡したいのですが、テキストエリアの値で改行コードが消えてしまいます。教えて下さい。

    javascriptでCGIに値を渡したいのですが、テキストエリアの値で改行コードが消えてしまいます。教えて下さい。 別窓ページにてtest.cgiを呼び出し、そのCGIに値を渡したいのですが、 一応値はテキスト形式で渡せるのですが、テキストエリアで入力したものの 改行コードが消えてしまいます。何か良い方法があれば、教えて下さい。 <FORM name="test" ACTION="javascript:test_window_open('/cgi-bin/test.cgi?bikou='+document.test.bikou.value);"> : : <TEXTAREA rows="8" cols="50" name="bikou"></TEXTAREA>

  • javascriptでのエラーについて

    Windows7+IE8にて以下の処理を行いたいのですが、 ================================================== (1) 親ウィンドウ(oya_window.html)から、【window.open】にて   子ウィンドウ(ko_window.html)を開く (2) 子ウィンドウ(ko_window.html)の【window.opener】にて   親ウィンドウ(oya_window.html)に定義されている   【window.open】を実行する関数[openWindow]を呼び出し、   Yahooページを開く ================================================== (2)の部分で以下のエラーとなり、Yahooページを開く事ができません。 --------------------------------------------------------- このWebページのエラーにより、正しく機能しない場合があります。 --------------------------------------------------------- タグが無効です。 oya_window.html   ライン:10 コード:0      文字:5 --------------------------------------------------------- 同マシン(Windows7)のfirefoxでは問題なく処理が行えるため、IEの 何らかの設定に起因していると思うのですが、IEの何の設定に起因して いるのかわからず、困っています。 何か情報をお持ちの方いらっしゃいましたら、よろしくお願いします。 【その他情報】 ○IEをアドオンなしで起動しても同エラーが発生することから、IEの  アドオンによる影響ではないと思われます。 ○以下の処理は問題なく実行できます。  ▼パターンA  ==================================================  (1) 親ウィンドウ(oya_window2.html)から、【window.open】にて    子ウィンドウ(ko_window2.html)を開く  (2) 子ウィンドウ(ko_window2.html)にて(元々親ウィンドウ    (oya_window.html)に定義していた)【window.open】を実行する    関数[openWindow]を呼び出し、Yahooページを開く  ==================================================  ▼パターンB  ==================================================  (1) 親ウィンドウ(oya_window3.html)から、【window.open】にて    子ウィンドウ(ko_window3.html)を開く  (2) 子ウィンドウ(ko_window3.html)の【window.opener】にて    親ウィンドウ(oya_window.html)に定義されている    【document.bgColor】を実行する関数[changeColor]を呼び出し    親ウィンドウの背景色を灰色に変更する  ================================================== 【ソース】 ▼本来のパターン ==親ウィンドウ(oya_window.html)=================== <HTML> <HEAD> <TITLE>親ウィンドウ </TITLE> <script language="Javascript"> function koopen(){ window.open("ko_window.html","ko_window","status=yes,width=800,height=100"); } function openWindow(){ window.open("http://yahoo.co.jp","",""); } </script> </HEAD> <BODY> <a href="JavaScript:koopen();">子ウインドウを開く</a> </BODY> </HTML> ================================================== ==子ウィンドウ(ko_window.html)=================== <HTML> <HEAD> <TITLE>子ウィンドウ </TITLE> <script language="Javascript"> function helpop(){ window.opener.openWindow(); } </script> </HEAD> <BODY> <a href = "JavaScript:helpop();">Yahooページを開く</a> </BODY> </HTML> ================================================== ▼パターンA ==親ウィンドウ(oya_window2.html)=================== <HTML> <HEAD> <TITLE>親ウィンドウ </TITLE> <script language="Javascript"> function koopen(){ window.open("ko_window2.html","ko_window","status=yes,width=800,height=100"); } </script> </HEAD> <BODY> <a href="JavaScript:koopen();">子ウインドウを開く</a> </BODY> </HTML> ================================================== ==子ウィンドウ(ko_window2.html)=================== <HTML> <HEAD> <TITLE>子ウィンドウ </TITLE> <script language="Javascript"> function helpop(){ window.opener.window.open("http://yahoo.co.jp","",""); } </script> </HEAD> <BODY> <a href = "JavaScript:helpop();">Yahooページを開く</a> </BODY> </HTML> ================================================== ▼パターンB ==親ウィンドウ(oya_window3.html)=================== <HTML> <HEAD> <TITLE>親ウィンドウ </TITLE> <script language="Javascript"> function koopen(){ window.open("ko_window3.html","ko_window","status=yes,width=800,height=100"); } function changeColor(){ document.bgColor="CCCCCC"; } </script> </HEAD> <BODY> <a href="JavaScript:koopen();">子ウインドウを開く</a> </BODY> </HTML> ================================================== ==子ウィンドウ(ko_window3.html)=================== <HTML> <HEAD> <TITLE>子ウィンドウ </TITLE> <script language="Javascript"> function helpop(){ window.opener.changeColor(); } </script> </HEAD> <BODY> <a href = "JavaScript:helpop();">親ウィンドウの色を変える</a> </BODY> </HTML> ==================================================

  • javascriptでの値の受け渡しについて教えて下さい

    はじめまして、初心者なのですがjavascriptについて おわかりになる方がおりましたら教えて下さい。 現在HPを作成しているのですが、javascriptについて 全くの初心者です。こんな事もわからないのか?っと 思う方もいらっしゃるとは思いますが教えて下さい。 本当に困っています。。。よろしくお願いします。 以下にscriptも記載します。 // html側ページ <a href='javascript:popup()'>てすと</a> // 外部javascript内 function popup(){ subWin=window.open("./test.php?mode=test&no=[ここに値を入れたい];","POPUP","width=785,height=650,scrollbars=yes"); } html側からデータNOの値をpopup scriptのnoの部分に入れて、 この番号に一致したページを別ページで表示したいのです。 みなさんよろしくお願いします。

  • 子ウィンドウから親ウィンドウへの値渡し

    親ウィンドウから子ウィンドウを開くとします。 その子ウィンドウのテキストフィールドに入力した値を、子ウィンドウ上のボタンを押下した際に親ウィンドウのテキストフィールドに表示させることってできるんでしょうか?

  • JavaScript PHP HTML

    新しいウィンドウを開きたいのですがうまくいきません。 どうか教えてください。 現在作成しているプログラムはあるメニュー画面から、キャッシュを使わないページのリンクをはっています。 ただ、このリンク先のページから戻ろうとすると、 キャッシュはクリアされているため、 警告 : ページの有効期限切れ となってしまいます。 そこで、新しいウィドウを開くことを思いついたのですが、JavaScriptで下記のようなものを作成し <SCRIPT LANGUAGE="JavaScript"> <!-- function openWindow(tmplurl) { window.open(tmplurl,"window","WIDTH=640,HEIGHT=300"); } //--> </SCRIPT> HTML側では ・<A HREF="javascript:openWindow(###TEMP###)">新しいウィンドウ</A><BR> PHP側では下記のようにHTML側の文字を置換しています。 str_replace(###TEMP###,http://wwww.test.co.jp/test.html,$body) 値もちゃんと入ってきてはいるのですが、うまくいきません。。。

    • 締切済み
    • PHP
  • JavaScriptの質問です。

    JavaScriptの質問です。 昨日からJavaScriptを勉強しているのですが、 フォームのボタンクリックイベントで、新しいウィンドウを表示させる時に 元のウィンドウをさわれないようにする方法がわかりません。 新しいWindowを表示させる時は下記のように処理しています。 function test() {  NewWindow = window.open("test.htm","Window","toolbar=no,location=no,directories=no,width=300,height=200,left=355,top=250");} どうやったらできるのか教えてください。 よろしくお願いします。

  • 多分簡単なJavaScriptなんだと思います。

    JavaScript初心者です。 チェックボックスが5つ有り、任意のチェックボックスをチェックして実行ボタンを押すと、sentakuという名前のテキストボックスにチェックしたボックスの値が代入されるjavascriptの記述を教えて下さい。 例えば、1番目と3番目と5番目に、チェックを入れて実行すると、テキストボックスsentakuには「1,3,5」と表示されるとベターです。

専門家に質問してみよう