別ドメインの子ウィンドウから親ウィンドウへ値を返す方法と同一ドメインでのGmail利用方法

このQ&Aのポイント
  • 別ドメインの子ウィンドウから親ウィンドウへ値を返す方法を教えてほしい。また、同一ドメインでGmailを利用する方法も教えてほしい。
  • 別ドメインの場合、親ウィンドウへopenerでアクセスできないため値を返す方法が難しい。しかし、同一ドメインの場合はGmail APIを利用することでメール作成機能を実現できる。
  • 別ドメインの子ウィンドウから親ウィンドウへ値を返す方法は限定的だが、同一ドメインの場合はGmail APIを使えば問題なくメール作成が可能。
回答を見る
  • ベストアンサー

子ウィンドウから親ウィンドウへの値の返し方

親ウィンドウのGmailのメール作成ページのメール本文欄に サブウィンドウで取得したデータを記載したいのですが、 別ドメインだと親ウィンドウへopenerでアクセスできないようです。 また、showModalDialogで子ウィンドウを開き、returnValueで 値を返しても、別ドメインの場合だと戻り値が空っぽになります。 iframeを使ってできないかいろいろ検証してみましたが、 やはり別ドメインの場合だと親ウィンドウに値を返せませんでした。 ちなみに下記サイトはすべて検索済みで解決できなかったです。 http://webcraft.seesaa.net/article/183943041.html http://lightbox.matrix.jp/ginpro/patio.cgi?mode=view&no=346&w=680 http://www.memorycraft.jp/2010/03/iframe.html http://www.openspc2.org/reibun/javascript/special/007/index.html 【質問内容】 (1)別ドメインの子ウィンドウから親ウィンドウへ値を返す方法を教えてほしい。 (2)もし、(1)が不可能な場合同一ドメインでGmailを利用する方法を教えてほしい。(できれば無料で) 以上、お手数ですがご回答をよろしくお願い致します。

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

  • ベストアンサー
回答No.1

jsonpを使ってデータのやり取りをしてみるとかは?

temujin1336
質問者

お礼

回答ありがとうございます。 jsonpの事はよく分からなかったのですが、調べてみるとクロスドメインでもいろいろできそうな気がするのでもっと詳しく調べていろいろ検証してみたいと思います。ありがとうございました。

関連するQ&A

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。

  • 親→子1→子2→親のデータ渡し

    1.親ウィンドウからサブウィンドウ1を開く。 2.サブウィンドウ1でsubmitボタンを押すと値が  window.openerで親に渡り更にサブウィドウ2が開く。 ここまでは、出来るのですが 3.サブウィンドウ2でsubmitボタンを押して値を親ウィンドウに渡すにはどうしたらよいでしょうか? ここでwindow.openerを使うとサブウィンドウ1が親ウィンドウと判断してしまい上手くいきません。 上手い方法があれば教えて下さい。

  • サブウィンドウから親ウィンドウのファンクションを起動

    おせわになっております。 サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。 親ウィンドウから var subWin = window.open("a.html", "sub") でオープンしたサブウィンドウを閉じる場合に サブウィンドウから親ウィンドウの function sub_close() { subWin.close(); } を呼び出して閉じる処理をしています。 (サブウィンドウでwindow.opener.sub_close()) #これは正常に処理されます。 ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから window.opener.sub_close() というような方法では親画面の操作ができないのでしょうか?(できませんでした。) 初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。 宜しくお願いします。

  • サブウィンドウから親ウィンドウをリロード

    サブウィンドウから親ウィンドウをリロードするときに、 window.opener.location.href = "A.html"; のような使い方をしていますが、親ウインドウのアドレスを指定せずに行う方法がありましたら教えていただけないでしょうか。

  • 親ウィンドウオブジェクトを、全ての子から参照する方法

    IEでサブウィンドウがいくつも開くアプリを作成しようとしています。 子ウィンドウから親ウィンドウ内のオブジェクトを操作したいのですが、単純にopenerでは取得できなく悩んでいます。 登場するのは、 親ウィンドウ・子ウィンドウ1・子ウィンドウ2・子ウィンドウ3・・・ とあるとします。 最初は、親ウィンドウから入り、各子ウィンドウを呼び出すとします。 子ウィンドウ同士は、他の子ウィンドウを呼び出せます。 たとえば、 例1)親→子1→子2 例2)親→子2→子3→子1 と言うことが可能です。 このとき、どこの子からでも、親ウィンドウオブジェクトを取得して親の関数を操作したいのですが、例1の子1は、openerでたどれますが、例2の子1opener/opener/openerと3つたどる必要があります。 ウィンドウのたどり方により、親までのopener回数が変わるため、どう実現すれば、親までの階層を意識することなく親オブジェクトを取得できるのかわからない状況です。 何か手段はありませんでしょうか? サンプルコードがありましたら紹介お願いします。

  • サブウィンドウを閉じたときに親ウィンドウのリンク先

    サブウィンドウを閉じたときに親ウィンドウのリンク先 サブウィンドウを閉じたときに親ウィンドウを別URLに 飛ばすにはどうしたらよいですか? ちなみにサブウィンドウはボタンを押したらウィンドウが 閉じるという動きです。 下記のタグで実行できるのですが、 macのIE5.0で動きません。 IE5.0で動くようにしたいのですが・・・・ 下記がタグになります。 ご教授お願いします。 ======サブウインドウタグ======= <script type="text/JavaScript"> function jump_and_close() {  opener.location.href = "別URL";  window.close(); } </script> ======親ウィンドウへのリンク======= <input type="button" value="ボタン" onClick="jump_and_close()">

  • 子ウィンドウから親ウィンドウへの値代入

    こんにちは。 asp.net2.0を使い始めて間もないのですが、子ウィンドウから親ウィンドウへの値代入で困ってます。 親ウィンドウからボタンで子ウィンドウを表示し、子ウィンドウのGridViewで選択した値を親ウィンドウの テキストボックス(サーバーコントロール)に代入したいのですが、 ['window.opener.form1.TextBox1' は Null またはオブジェクトではありません。] というエラーが出てしまいます。 ネットで見つけたサンプルは、親、子ともにウェブフォームを使用しており、確かにうまくいくのですが、 私が作っているページはマスターページの中のコンテンツフォームを親としていて、うまくいきません。 ※但し、親側のコントロールをHTMLクライアントコントロールのINPUTタグにし、 さらにフォーム名をaspnetForm(ブラウザのソース表示でみたらそうなってました。自動生成?) にして ↓子ウィンドウのグリッド選択時ソース protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { string strScript; strScript = "<script language='javascript'>"; strScript += "window.opener.form1.TextBox1.value='aaaa';"; strScript += "window.close();"; strScript += "</script>"; Response.Write(strScript); } リテラルコントロールにしたり、TextBox1.valueではなくTextBox1.textにしてみたりと いろんなパターンを試しましたが、だめでした。 コンテンツフォームでは親のサーバーコントロールへの値代入は不可能なのでしょうか? そもそも、子ウィンドウでの検索というのはASP.NETでは、あまり一般的ではないのでしょうか? 宜しくお願いいたします。 (情報、不足してましたら教えてください。)

  • 子ウィンドウより親ウィンドウのフォームをsubmit

    親ウィンドウより子ウィンドウをwindow.openにて 表示し、 parent.window.opener.document.form.コントロール名.value="111"; というふうに、子ウィンドウより親ウィンドウのコントロールに値をセットしています。これに親ウィンドウのフォームをsubmitするという処理を追加したいのですが、可能なのでしょうか?? もし可能であれば、その方法を教えてください。 よろしくお願いします!!!! また、子ウィンドウより親ウィンドウのコントロールに値をセットした場合、親ウィンドウのonchangeイベントは発生しないようなのですが、この解消方法はないでしょうか?? よろしくお願いします!!!!

  • サブウィンドウと、親ウィンドウについて

    これは、データベース絡みでの質問になると思いますがよろしくお願いします。 ここの前の質問でも同じようなものがあり、流用できたらと試してみましたがうまくいきません。それは、以下の手順によってデータを操作しようと考えているのですが・・・ (1)親ウィンドウにサブウィンドウを呼び出すボタンを設置する。 (2)呼び出されたサブウィンドウにデータを入力すると親ウィンドウのデータも一緒にデータベースに登録される。 と、いう手順でしたいと考えており、サブウィンドウ側に、 function copy(){ document.form1.text1.value = opener.parent.left.document.form2.text1.value; } とし、サブウィンドウに親ウィンドウからデータを持ってくるために <input type="hidden" name="text1" onChange="copy()"> という隠しフィールドを設け、親からデータを格納させています。 また、上にある、「left」は親をフレームわけしているのでフレーム名です。(持ってくるデータは、form1にあり、そこにボタンを設置しています)説明不足でしたら補足いたしますので、よろしくお願いします。考え方でも結構です。

  • 子ウィンドウから親ウィンドウのチェックボックス

    おそれいります。 現在、子ウインドウで、window.opener.document.getElementById('text1').value='4444'; window.opener.document.getElementById('text2').value='こんにちは'; window.opener.document.getElementById('text3').value='今日は晴れ'; として、親ウィンドウで <input type="text" id="text1"> <input type="text" id="text2"> <input type="text" id="text3"> へ値をセット出来ているのですが、 この記述の流れで親ウィンドウのチェックボックスを子ウィンドウからtrueにすることはできるでしょうか。よろしくお願いします。

専門家に質問してみよう