gpt4 book ai didi

javascript - 错误 : window. opener 的属性未定义

转载 作者:行者123 更新时间:2023-11-30 17:52:40 25 4
gpt4 key购买 nike

一个页面使用 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
'Window {}',

这意味着打开窗口不为空,但它的所有属性都丢失了。但是,如果一个页面打开一个新页面是这样的:

popWin = window.open('', 'popupPage', "width=480,height=272");
popWin.document.write("这是popupPage");

弹出页面的window.opener是对opener window的引用,通过'window.opener'对象可以控制opener window。例如:

<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 中测试了这段代码。

谁能告诉我如何控制弹出页面中的开启窗口?

最佳答案

它可以正常工作,但您正在发出跨域请求。如果你打开的窗口和你打开它的窗口在同一个域中,你就不会有问题

注意:当您不使用网络服务器而只是使用文件系统(file:///是您的协议(protocol))时,这可能被归类为跨域请求。我尚未对其进行测试 - 不过请放心,当您在网络上获取它时,只要开启者和被开启者都是来自同一域的服务器,一切都会很好。

编辑

我刚刚在我的本地文件系统上做了一个快速测试,确实是这样——它被归类为跨域请求,出于安全目的而被禁止——同样,当你把它放在上面时,它不会有问题一个网络服务器,并为来自同一域的两个页面提供服务。

关于javascript - 错误 : window. opener 的属性未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com