私はIE9で作業しています。ページからポップアップウィンドウを開き、ポップアップから、(ポップアップウィンドウではなく)ページ内のjavascriptコードを呼び出す方法を教えてください。
ページの同じドメインからポップアップウィンドウにページをロードするので、クロスドメインの問題は発生しません。
私はIE9で作業しています。ページからポップアップウィンドウを開き、ポップアップから、(ポップアップウィンドウではなく)ページ内のjavascriptコードを呼び出す方法を教えてください。
ページの同じドメインからポップアップウィンドウにページをロードするので、クロスドメインの問題は発生しません。
Coryが言ったように、を使用window.opener
して親ウィンドウのを取得しますwindow
。これを見てください:
function openPopup() {
var w = window.open("", "");
w.document.open();
w.document.write("<script type='text/javascript'>window.opener.parentWindowFunction();<\/script>");
w.document.close();
}
function parentWindowFunction() {
alert("called");
}
もちろん、私の使用法はdocument.open/write/close
、親ウィンドウの関数を呼び出す独自のページを作成することです(技術的には、実際に持つ<html><head></head><body>SCRIPT HERE</body></html>
必要があります。ポップアップのページに必要なのは、の呼び出しだけwindow.opener.parentWindowFunction
です。
window.opener
ポップアップを開いたページのグローバル(window
)名前空間の関数にアクセスするために使用できます。
function functionFromOpener() {
return "wharrgarbl";
}
alert(window.opener.functionFromOpener());
必須のjsFiddleの例:http ://jsfiddle.net/9yLu2/1/
そうは言っても、ページはめ込みDHTMLダイアログを使用する方が良いと思います。(または、サイズ変更できない/アドレスバーがないブラウザウィンドウが私をそれほど悩ませている可能性があります。)