Javascript 在新的空白选项卡上异步设置location.href不在MS Edge上工作

Javascript 在新的空白选项卡上异步设置location.href不在MS Edge上工作,javascript,microsoft-edge,Javascript,Microsoft Edge,我想使用\u authTab=window.open('''.'u blank')打开新选项卡异步设置它的url 例如setTimeout(()=>\u authTab!.location.href=)https://stackoverflow.com/', 2000);。在chrome上,一切正常:空白页面打开,2秒钟后https://stackoverflow.com/已加载 function setUrlAsync(): AsyncAction { let _authTab: Wind

我想使用
\u authTab=window.open('''.'u blank')打开新选项卡异步设置它的url
例如
setTimeout(()=>\u authTab!.location.href=)https://stackoverflow.com/', 2000);。在chrome上,一切正常:空白页面打开,2秒钟后
https://stackoverflow.com/
已加载

function setUrlAsync(): AsyncAction {
  let _authTab: Window | null;
  return async (dispatch, getState, api) => {
    try {
      let authTab: AuthWindow;
      _authTab = window.open('', '_blank'); // A new window has to be be opened synchronously to avoid pop-up blockers (https://stackoverflow.com/questions/2587677/avoid-browser-popup-blockers)
      setTimeout(() => _authTab!.location.href = 'https://stackoverflow.com/', 2000);
    } catch (error) {
      authActions.callbackUrlNotReceived({ error });
      throw error;
    }
  };
}
Ms Edge抛出一个错误,导致新选项卡保持空白

[object Error]: {description: "Permission denied", message: "Permission denied", nr@seenError: true, number: -2146828218, stack: "Error: Permission denied at Anonymous function (https://52f62d4b.ngrok.io/:149596:15) at nrWrapper (Unknown script code:1:16969)"}
description: "Permission denied"
message: "Permission denied"
nr@seenError: true
number: -2146828218
stack: "Error: Permission denied at Anonymous function (https://52f62d4b.ngrok.io/:149596:15) at nrWrapper (Unknown script code:1:16969)"

__proto__: Error
编辑 网页正在
iframe中使用

  <iframe 
      allow="accelerometer *; ambient-light-sensor *; autoplay *; camera *; encrypted-media *; fullscreen *; geolocation *; gyroscope *; magnetometer *; microphone *; midi *; payment *; picture-in-picture *; speaker *; usb *; vibrate *; vr *"
      sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts" 
      src="....">
  </iframe>

Edge可能认为
窗口中的
'
url.open('''.\u blank')
位于不同的域中。参考资料:

尝试打开空白页。

如果删除
沙盒属性,则可以在Edge上的新打开页中设置url

A.html

<iframe allow="accelerometer *; ambient-light-sensor *; autoplay *; camera *; encrypted-media *; fullscreen *; geolocation *; gyroscope *; magnetometer *; microphone *; midi *; payment *; picture-in-picture *; speaker *; usb *; vibrate *; vr *"
        src="B.html">
</iframe>

B.html

<input type="button" value="test" onclick="opennew()" />
<script>
    function opennew() {
        var _authTab = window.open('', '_blank');
        setTimeout(() => _authTab.location.href = 'https://stackoverflow.com/', 2000);
    }
</script>

函数opennew(){
var _authTab=window.open(“”,_blank');
setTimeout(()=>\u authTab.location.href=>https://stackoverflow.com/', 2000);
}

从中可以看出,Edge不支持
sandbox
的许多值。因此,这可能就是为什么当我们使用带有
沙盒属性的iframe时,不能将url设置在边缘上的原因。

请您至少解释一下否定的地方好吗?很好,但是带有这些确切道具的沙盒必须在那里。然后我想您只能尝试在边缘上同步加载url。我尝试了很多沙盒值的组合,结果总是显示错误,边缘显示“权限被拒绝”。