2

我希望有一个人可以帮助我。

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

在弹出窗口中,我想要一个“立即预订”链接/按钮,它将父网站的页面更改为它的 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 导致父窗口抛出一个黄色弹出栏,为用户提供临时允许弹出窗口的选项。方法 2 在弹出窗口中给出“页面错误”并给出解释“权限被拒绝”。

在 Opera 11.51 - 这两种方法都会在“未捕获异常:ReferenceError:安全错误:试图写入受保护变量”的错误控制台中引发错误

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

所以我问..

  • 有没有办法让弹出窗口上的代码在它们位于不同域时更改其父级的页面位置,跨浏览器工作?
  • 为什么 Internet Explorer 在方法 1 中抛出黄色弹出栏,当我不使用 window.open 时,我使用的是 location.href?即我要求家长更改位置而不是打开新的弹出窗口。
  • 我错过了使用某种“目标=”代码吗?
  • 我需要使用某种“return false”吗?或者其他的东西?

[我在这里有一个示例,但现在我已将其删除,因为我设置了一个额外的网络托管帐户以显示跨域问题的实际效果。但我现在不需要额外的虚拟主机,所以我取消它以省钱。带来不便敬请谅解]

感谢您阅读本文,即使您帮不上忙。

戴夫

4

1 回答 1

1

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

于 2011-09-01T17:02:15.197 回答