Window.opener in Microsoft Edge undefined when run

2019-01-28 21:35发布

问题:

I'm using Microsoft Edge in localhost for development.

Website is accessed via http://localhost

I open a popup and want it to post a message to the opener via window.opener.postMessage

My code works with Chrome, and Safari, and even Microsoft Edge when the website is on staging or production.

But when I run in in local mode, the window.opener is undefined.

回答1:

CORS on localhost is tricky so try to create a domain name you like to your hosts file (%windir%\System32\Drivers\etc\hosts) - if you're in a Windows-based platform and map those back to 127.0.0.1.

You probably already know how to change the hosts file but just in case:

http://support.hostgator.com/articles/general-help/technical/how-do-i-change-my-hosts-file



回答2:

Microsoft Edge runs in network isolation and does not currently support localhost testing. Run this in an elevated command prompt to enable loopback support:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

In a future update, you’ll be able to enable localhost loopback support using about:flags.

More info: http://dev.modern.ie/platform/faq/how-can-i-debug-localhost/