一个弹出窗口如何改变其父跨域的页面位置?

How can a popup window change the page location of its parent cross domain?

本文关键字:位置 一个 何改变 窗口 改变      更新时间:2023-09-26

我希望有人能帮助我。

我有一个网站,使用javascript打开一个存在于另一个域的弹出窗口。

在弹出窗口上,我想要一个"book now"链接/按钮,将更改父网站的页面到它的booking.htm页面,然后弹出窗口关闭。

不可能将弹出窗口与主网站托管在同一域。

我已经尝试了两种代码类型来更改页面位置…

1)

window.opener.location.href="booking.htm"

2)

window.opener.window.location.href="booking.htm"

在Firefox 6和Chrome 12中- 1和2都可以正常工作

在Internet Explorer 8 -方法1导致父窗口抛出一个黄色的弹出栏,让用户选择暂时允许弹出。方法二在弹出窗口上显示"页面错误",并给出"权限被拒绝"的解释。

在Opera 11.51 -两个方法抛出错误的错误控制"Uncaught exception: ReferenceError: Security error: attempt to write protected variable"

我很确定这些问题与主站和弹出窗口在不同的域有关,但再次将它们托管在同一域不是一个选择。

所以我问…

  • 是否有一种方法可以让弹出窗口上的代码更改其页面位置父母当他们在不同的域,跨浏览器工作吗?
  • 为什么ie在方法1中抛出一个黄色的弹出栏,当我没有使用使用窗口。打开,我用的是location。href?也就是说,我
  • 我是否错过了使用某种"target="代码?
  • 我需要使用某种"返回false;"或其他东西吗?

[我在这里有一个例子,但现在已经删除了它,因为我设置了一个额外的网络托管帐户,以显示跨域问题在行动。]但是我现在不需要额外的虚拟主机,所以我取消它来省钱。抱歉给您带来不便]

谢谢你读了这么多,即使你不能帮上忙。

戴夫

你不能跨域这样做。在子弹出页面重定向到父的域,该页面可以简单地刷新/重定向打开器,或者您可以访问它,因为它将是相同的域。