質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

3回答

70289閲覧

親ウィンドウと子ウィンドウ間でのデータやり取り

kenkbou

総合スコア151

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2016/03/01 00:59

先日関連する質問をさせていただいたのですが、

親ウィンドウのinputに入力した値を
子ウィンドウをwindow.openで開いた際に引き継ぐ方法(input hiddenなどに格納)が分からずに困っています。

子→親へデータを渡すドキュメントは多くあり比較的楽に実装出来ました。

親→子へデータを渡すドキュメントが少なく、今のブラウザには対応していないみたいです。

jQuery等での簡単なサンプルをどなたか見せていただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんにちは。

  • 子ウィンドウは、親のjavascriptでwindow.openしたときに、変数にオブジェクトをとっておく

例) var childWin = window.open(~);

  • 親ウィンドウは、子のjavascriptでwindow.openerとして参照

とすれば、それぞれのウィンドウの内容を操作できると思います。

こちらの説明が分かりやすそうですよ。
【JavaScript】子ウィンドウ/親ウィンドウのお互いの要素を操作するには!?

投稿2016/03/01 01:54

kaputaros

総合スコア1844

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenkbou

2016/03/01 02:31

ありがとうございます! こちらのJSのドキュメントを読み、やっておりましたが うまく動作してくれませんでした。 ファイルを外部化していたりするのがいけないのでしょうか、、、 もう少し漁ってみます、ありがとうございました
kaputaros

2016/03/02 00:34

ファイルの外部化ということでしたが、無名ではないfunctionとして定義してそれを呼び出すのではダメでしょうか?
guest

0

簡単なサンプルです。
まず、こんな感じで開いたwindowオブジェクトを持っておきます。

Javascript

1var win = window.open('somewhere.html','_blank');

親から子

Javascript

1$(win.document).find('#入れたいhiddenのid').val('これを入れる');

子から親

Javascript

1$(window.opener.document).find('#入れたいhiddenのid').val('これを入れる');

こんな感じです。もっとシンプルに書く方法があるかもしれませんが、今思いつくのはこんな感じです。

投稿2016/03/01 02:01

shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shi_ue

2016/03/01 02:03 編集

ううう、皆さん回答速い・・・
kenkbou

2016/03/01 02:27 編集

早急にありがとうございます。 今同じ記述で試してみましたが、うまく受け取れていないみたいです。。。ブラウザが悪いのでしょうか、、、Chromeでローカルでやっています。 単純明快なコードを使いこなせずにすみません。 もし何かお気づきになられましたらご教示いただければ幸いです。 -------------------------------------------------------- index.html(親) <form method="post" action="form.php"> <input type="text" name="name" id="name" /><br /> <input type="submit" value="送信" /> </form> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> <script src="jsjs.js"></script> -------------------------------------------------------- index2.html(子) <form method="post" action="form.php"> <input type="hidden" name="name2" id="name2" /><br /> <input type="submit" value="送信" /> </form> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> <script src="jsjs.js"></script> -------------------------------------------------------- jsjs.js(jQuery) $(function () { var w = window.open("index2.html", 'sub', 'width=400, height=600'); var name = $('#name').val(); $(w.document).find('#name2').val('name'); }); --------------------------------------------------------
shi_ue

2016/03/01 02:33

ローカルではセキュリティに引っかかって動作しません。 どこかに上げるか、ローカルサーバーを立ててくださいです。 (なんか毎回同じような回答しているような・・・最近この手の問題が多いのです)
kenkbou

2016/03/01 03:35

セキュリティの問題だったのですね、ありがとうございます。 今、レンタルサーバーさくらであげてみました が、またローカル同じでコンソールにエラーも出ず、値も引き継げていないという状況です。 OSXでChrome,Safari,FireFoxでダメでした。 仕様が変わっているのでしょうか?
guest

0

これはどうですか?
http://stackoverflow.com/questions/26328170/how-to-pass-data-from-parent-window-to-child-popup-window

開いた子ウィンドウのページは同じドメインである必要があります。

投稿2016/03/01 01:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenkbou

2016/03/01 02:28

ありがとうございます! JSだとこのような書き方で実装出来るのですね。 参考にさせてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問