• ベストアンサー

親ウィンドウのURL

親ウィンドウからサブウィンドウをクリックイベントで表示させた場合に、サブウィンドウ側で呼びだした親ウィンドウのURLを取得することはできるでしょうか? 質問1 サブウィンドウをオープンする際に、GET変数なしでそれ(親ウィンドウのURL取得)がサブウィンドウ側でできるかどうか? 質問2 質問1の回答がYESの場合→具体的な取得方法 質問1の回答がNOの場合→GETで親ウィンドウのURLを取得する以外に方法はないか? 以上宜しくお願いいたします。

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

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

親ウィンドウが明示的に自URLを子供に渡してない限りは HTTP GET では情報を取得できません(当たり前) HTTP 環境変数と勘違いされているのかもしれません。$ENV{'HTTP_REFERER'} を用いて取得する事ができますよ。故意に送らない事ができるブラウザもありますので 100% の信頼度ではありませんが、十分実用に耐えうるレベルで取得は可能です。

参考URL:
http://www.futomi.com/lecture/env_var/http_referer.html
wanwansan
質問者

補足

ありがとうございます。 GETを持ち出したのは、それ(GETで親から引き渡される)以外にサブウィンドウが呼び出し元のURLを取得 できない場合があるのか?という意図で書かせてもらいました。説明不足で申し訳ありません。 親が渡さなくてもサブウィンドウのほうで取得できれば ベストです。 サブウィンドウの場合でもHTTP_REFERER(環境変数ですね?)が利用できるのですね。 JavaScriptではどのように記述するのでしょうか?

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

Javascriptでは「document.referrer」でリンク元URLを取得できます。(←スペルミスではありません。) ただ、document.referrerはアクセス解析ギライの人が無効化している場合もあるので親子ドキュメントが同じドメインに存在するならば(*1)、#1の方の回答のように「opener.location.href」を参照したほうがいいかと思います。 *1:ドメインが異なる場合はopenerオブジェクトは参照を禁止されているので

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1192733
  • ntm98
  • ベストアンサー率26% (73/273)
回答No.1

専門家じゃないんで、あんまり自信がないですが、 呼び出される側で「opener」プロパティを使用すれば良いかと。 具体的には、 document.write(opener.location.href); といった感じです。 的外れだったらごめんなさい。

関連するQ&A

  • サブウィンドウを開くと親ウィンドウが上に戻ってしまう

    ページ途中のリンクからJavaScriptでサブウィンドウを開くとき、親ウィンドウが上に戻ってしまいます。 これをリンク位置でサブウィンドウが開くようにしたいのです。 どのようにすれば親ウィンドウが動かなくなりますでしょうか。 サブウィンドウ用のJavaScript function wopen1(){ window.open("aaa.htm","plain","scrollbars=yes"); } リンク側 <a href="#" onClick="wopen1()"> どうぞよろしくお願いいたします。

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

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

  • サブウィンドウを開くタイミングで親ウィンドウからデータを渡す

    親ウィンドウ、サブウィンドウを両方開いた状態でデータを受け渡す方法は見かけるのですが、 サブウィンドウを初めて開くタイミングで親ウィンドウからデータを渡す方法はありますでしょうか? 現在以下のように書いています。 親ウィンドウ function openLicense(sub, index){ w = window.open('', 'publish', 'toolbar=no,); w.document.open(); w.document.form.password_index.value=index; document.form.submit(); w.focus(); } サブウィンドウ <input name="password_index" type="HIDDEN" value=""> が、「w.document.form.password_indexはnullまたはオブジェクトではありません」 とエラーになります。何かいい方法はないでしょうか。

  • 親ウィンドウから子ウィンドウのURLを取得する方法

    openメソッドで開いた子ウィンドのURLを親ウィンドウから取得することは できますか? 子ウィンドウで色々なページに移動し、ある時点で表示されている 子ウィンドウのURLを親ウィンドウで取得したいのです。 以下の様なソースを書いてみましたが駄目でした。 var child; function OpenWindow() { child = open("http://xxx.yyy.zzz/", ""); } function GetChildURL() { var child_url = child.location.href; }

  • 指定のURLのタイトルを取得したいです

    親ウィンドウで <a href="​http://www.yahoo.co.jp/index.htm"​ target="new">Yahoo</a> 上記のリンクをクリックして開いたサブウィンドウ内のJavaScriptで 親ウィンドウのページタイトルを取得したいのですが、 どのようにしたら良いか教えて頂きたいです。 前回のさせていただいた質問のご回答で 親のURLは document.write(document.referrer) で取得できたのでこれを使ってそのURLにアクセスして タイトルを取得したいです。 頂いたご回答の中にサイト名を取得する方法も出ていたのですが、 事前に設定しておかなくてはならず、 どのURLのタイトルでも取りたいので、上記の方法を考えてみました。 ご教示頂けたら幸いです。よろしくお願い致します。

  • 親ウィンドウから開いた子ウィンドウをまとめて閉じるには?

    親ウィンドウから複数のサブウィンドウを開いたとします。親ウィンドウを閉じる際に、開いているサブウィンドウを全て閉じたいと思っています。 開いたサブウィンドウのwindowオブジェクトを控えておいて、親ウィンドウのunloadで順番に閉じていけばできますが、イマイチかっこいい処理ではないので、一括してcloseできる処理を考えているところです。 なにかいい方法はないでしょうか?

  • 親ウィンドウがページ先頭にもどってしまいます

    HTMLでホームページ作成作業をしています。 各所でページ内容の詳細を小ウィンドウで表示させるようにしているのですが、小ウィンドウが開くとクリックしたもとの親ウィンドウがページの先頭まで戻ってしまいます。クリックしても親ページが動かない方法がありましたらご教授願います。ちなみにタグはこんな感じです。宜しくお願いします。 <a href="#" onClick="window.open('photo001.html','','width=630,height=450,menubar=no,resizable=yes,scrollbars=yes,status=no,');">写真あり</a>

    • ベストアンサー
    • HTML
  • 親ウインドウのURLの取得

    やりたいことは、サブウインドウを開いた時に親ウインドウのURLを取得したいのですが、下記では取れませんでしたので質問させていただきました。 document.referrer

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

    親ウィンドウの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を利用する方法を教えてほしい。(できれば無料で) 以上、お手数ですがご回答をよろしくお願い致します。

  • JavaScript サブウィンドウを開くときの親ウィンドウ

    親ウインドウ画面が、縦に長いときに 下のほうへにスクロールしたまま、 サブウィンドウを開くと 親ウィンドウ画面が 一番上へ戻ってしまいます。 親ウィンドウを下にスクロールしたままにして、 サブウィンドウを開きたいです。 親ウィンドウを下にスクロールしたまま サブウィンドウを開く方法を教えてください。 よろしくお願いします。

専門家に質問してみよう