Opener.Location.Reload(); 在java脚本中显示Permission denied错误

4 javascript permissions denied

我有两个域名.domain1和domain2,我从domain1/default.aspx页面打开domain2/index.aspx页面作为弹出窗口.在关闭domain2页面时,我需要重新加载domain1页面,我已经将javascript代码作为"Opener.Location.Reload();".我收到权限被拒绝 javascript错误.关于这个问题的任何想法.

小智 6

我发现在弹出窗口中设置了一个parentUrl变量(从查询字符串中获取),然后使用:

window.opener.location.href = parentUrl;
Run Code Online (Sandbox Code Playgroud)

作品.

我不知道为什么,我认为它很神奇,但它有效(在IE,Chrome和Firefox上测试过).您无法读取window.opener.location.href的值,但您可以将其设置为您想要的任何URL.我用这种奇怪的做法来刷新.

希望能帮助到你


Tim*_*uri 2

某些属性和操作在跨域场景中被专门阻止。您可以做的是在父级上创建一个函数来执行您想要的代码,然后从子级调用该函数。

例子:

// On the parent...
function DoTheRefresh()
{
    location.reload();
}
Run Code Online (Sandbox Code Playgroud)

然后,针对孩子:

opener.DoTheRefresh();
Run Code Online (Sandbox Code Playgroud)

我过去曾经这样做过,所以我不确定它是否仍然是一个选择。我希望它对你有用:)