opener.reload时拒绝了Javascript权限

Javascript permission denied when opener.reload

本文关键字:Javascript 权限 拒绝 reload opener      更新时间:2023-09-26

我有一个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按钮,则弹出窗口假定已关闭。该按钮在谷歌浏览器上运行良好,但在Firefox中不起作用。使用Firebug进行调试,我看到弹出窗口中的函数被拒绝了权限。弹出窗口的代码为:

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

错误消息为:Permission denied to access property 'reload'

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

opener.top是否在同一个"原点"(通常是同一域)?我认为是这样,因为它在Chrome中工作。也许这种变通方法有效:

致电opener.please_reload_for_me()

开启器框架具有以下功能:

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

因此,基本上将top的访问委派给开启器帧。