在弹出窗口上使用开启器时的Chrome错误(跨域)

时间:2018-11-23 10:26:42

标签: javascript google-chrome window.opener

我有一个本地网站,其中包含应该可以访问其父母的弹出窗口。

打开的弹出窗口如下所示:

open("filename.html", 'name', 'scrollbars=yes,width=700');

我正在尝试通过window.opener属性将其设置为访问其父窗口。

这在Firefox上可以正常工作,但在出现错误的Chrome上却不能:

Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.

我还注意到,当上传到服务器时,它在Chrome和Firefox上都可以正常工作。

在本地运行时如何在Chrome上运行此功能? window.opener上是否有允许子窗口访问其父窗口的替代方法?

1 个答案:

答案 0 :(得分:0)

我在一个项目中遇到了同样的问题...我的临时解决方案是设置一个本地服务器,例如:

  1. 下载http服务器:

    $ npm install http-server -g

  2. 在控制台中查找项目主文件夹,然后键入:

    $ http-server

  3. 控制台将显示您可以在哪个端口上运行本地网站

现在您可以在Chrome中使用window.opener。我想有一个更好的解决方案!

顺便说一句,另一个想法是用子窗口代替模式:)