1

我有一个 Rails 应用程序,其中有

link_to 'Show', %Q[javascript:self.window.open('http://somelink.com', 'width=700,height=550,resizable=yes,scrollbars=yes,toolbar=yes,status=yes').focus()]

单击链接时,会打开一个弹出窗口,其中有一个 OK按钮。如果用户单击OK按钮,则弹出窗口应该关闭。该按钮在 Google Chrome 上工作正常,但在 Firefox 中不工作。使用 Firebug 进行调试,我看到弹出窗口中的功能被拒绝。弹出窗口的代码是:

function onclick(event) {
 opener.top.location.reload();
 self.close();
}

错误信息是:Permission denied to access property 'reload'

我环顾四周,但找不到解决此问题的方法。显然我无权访问弹出窗口的代码。

4

1 回答 1

2

是否opener.top在同一个“起源”(通常是同一个域)中?我会这样认为,因为它可以在 Chrome 中使用。也许这种解决方法有效:

打电话opener.please_reload_for_me()

开瓶器框架具有以下功能的地方:

function please_reload_for_me() {
    window.top.reload();
}

因此,基本上将访问权限委托top给开启者框架。

于 2012-07-10T23:42:19.803 回答