あるページは window.open() メソッドを使用して別のページ (openerdemo.html など) を開きますが、ポップアップ ページはオープナー ページのどのプロパティにもアクセスできません。
オープナーページコード:
<head>
<meta http-equiv="content-type" content="html/text"; charset="utf-8" >
<title>windowdemo</title>
<script language="JavaScript">
function openWin(thisurl) {
popWin = window.open(thisurl, 'popupPage', "width=480,height=272");
}
</script>
</head>
<body>
<input type="button" value="open" onClick="openWin('openerdemo.htm')"/>
</body>
ポップアップ ページ (openerdemo.htm) コード:
<html>
<head>
<meta http-equiv="content-type" content="html/text"; charset="utf-8" >
<title>windowdemo</title>
<script language="JavaScript">
function closeWin() {
window.opener.close();
window.close();
}
</script>
</head>
<body>
<h1><a href="#" onClick="closeWin()">close all</a></h1>
</body>
Chrome で JavaScript コンソールを使用し、ポップアップ ウィンドウの cmd 行に「window.opener」と入力すると、次のように返されます。
window.opener
'ウィンドウ {}',
つまり、オープナー ウィンドウは null ではありませんが、すべてのプロパティが欠落しています。ただし、あるページが次のように新しいページを開く場合:
popWin = window.open('', 'popupPage', "幅=480,高さ=272");
popWin.document.write("これは popupPage です");
ポップアップ ページの window.opener は、オープナー ウィンドウへの参照であり、「window.opener」オブジェクトを使用してオープナー ウィンドウを制御できます。元:
<body>
<script type="text/javascript">
myWindow=window.open('','','width=200,height=100')
myWindow.document.write("This is 'myWindow'")
myWindow.focus()
myWindow.opener.document.write("This is the parent window")
</script>
</body>
このコードを FF、IE、および chrome でテストします。
ポップアップページでオープナーウィンドウを制御する方法を教えてもらえますか?