You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2022年6月26日起Microsoft Edge无法复用子标签页问题咨询

问题原因

2022年6月26日前后微软推送的Edge 103稳定版,默认启用了跨站窗口名称隔离安全机制:当父页面通过window.open打开跨源(不同域名、端口、协议)页面时,浏览器会对不同源的窗口名称做隔离处理,不再允许跨源场景复用相同target值的标签页。这个特性是默认开启的隐私防护能力,用来阻断恶意站点通过窗口名称实现跨站用户追踪,不是代码逻辑或者本地设置出错。

修复方案

根据是否能管控页面代码,可选两类方案:

方案1:代码适配(推荐,不依赖用户本地配置)

如果父页面属于可管控范围,用同域中转的方式就能绕开跨源隔离限制,完全恢复标签复用能力,不需要用户改任何浏览器设置:

  • 先在自己站点下新增一个空白的同域中转页,比如路径为/profile-tab-redirect
  • 改写原有launchProfile方法,不再直接打开跨域目标地址,而是先打开同域中转页,固定复用profileTab这个target名,把要跳转的真实地址通过同域缓存传递给中转页
  • 中转页加载后读取缓存的真实地址,直接跳转到目标外部站点即可

对应实现代码如下:
原方法改写:

function launchProfile(profileLink){
  profileLink += 'profile=' + tempProfile + '&profileNumber=' + tempProfileNumber;
  // 存储待跳转地址,同域页面可直接读取
  sessionStorage.setItem('profileTargetUrl', profileLink);
  // 始终打开同域中转页,复用固定target名
  window.open('/profile-tab-redirect', 'profileTab');
}

中转页代码(放在自己站点同域路径下即可):

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>跳转中</title>
</head>
<body>
  <script>
    const jumpUrl = sessionStorage.getItem('profileTargetUrl');
    if (jumpUrl) {
      // 替换当前地址,不会产生额外历史记录
      location.replace(jumpUrl);
    }
  </script>
</body>
</html>

方案2:调整Edge配置(适合企业内网场景,会降低隐私防护等级)

如果无法修改页面代码,可以通过关闭对应安全特性恢复原有行为,仅建议在完全可信的内部使用环境操作:

  • 个人用户手动配置:打开Edge,地址栏输入edge://flags进入实验性功能页,搜索Window name isolation,将对应选项的值改为Disabled,重启浏览器后原有代码即可正常复用标签页。
  • 企业批量部署:通过Windows组策略找到Edge对应的Configure window name isolation策略项,设置为禁用后统一下发给域内设备,不需要终端用户手动调整。

内容的提问来源于stack exchange,提问作者muddyWildcat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:45:39