在 Edge 浏览器中,如何执行 window.open() 并且不在新窗口或标签中保持会话?

Posted

技术标签:

【中文标题】在 Edge 浏览器中,如何执行 window.open() 并且不在新窗口或标签中保持会话?【英文标题】:In Edge browser, how can I do window.open() and not keeping session in the new window or tab? 【发布时间】:2021-01-14 05:32:00 【问题描述】:

使用 Edge 浏览器,我想在不保留当前窗口会话的情况下打开一个新窗口和/或标签。

我让它像这样在 Firefox 上工作: 打开新窗口 -> window.open('mySiteURL', '_blank', 'status=no,noopener=yes'); 打开新标签 -> window.open('mySiteURL', '_blank', 'noopener=yes');

我想为 Edge 浏览器实现同样的功能。

【问题讨论】:

这有帮助吗? ***.com/questions/2257631/… 【参考方案1】:

IE 可以为不同窗口和选项卡中的内容创建多个内容进程。

如果您的应用程序托管了一个 webbrowser 控件,该控件随后会启动一个完整的 IE 窗口,那么您的新 URL 可能是由另一个进程 (iexpore.exe) 而不是您的应用程序进程请求的。因此,请求无法访问会话 cookie,因此会话显示为“丢失”。

(值得注意的是,同一进程树中的多个 iexplore.exe 进程实例具有相互共享会话 cookie 的方法。

Opening a new window create a new session

【讨论】:

【参考方案2】:

我将为您要打开的每个新窗口或选项卡创建一个新驱动程序缓冲区。 当您使用 JS window.open() 函数时, 只需执行driverOfOldWindow.close(),它将关闭上一个窗口。 不要使用driverOfOldWindow.quit(),因为它会关闭所有浏览器窗口,这不是您可能想要做的,因为您的 WebDriver 可能已经打开了您可能希望仍在工作的其他窗口。

要管理标签,只需使用getAllWindowHandles() 函数并在您也想关闭的标签上调用close() 方法。

Look here

【讨论】:

以上是关于在 Edge 浏览器中,如何执行 window.open() 并且不在新窗口或标签中保持会话?的主要内容,如果未能解决你的问题,请参考以下文章

如何卸载自动推送的 Microsoft Edge 浏览器?

怎么关闭microsoft edge浏览器

如何在 CSS 中检测 IE 和 Edge 浏览器?

如何在Microsoft Edge浏览器中添加一个Hello World插件

win7如何安装edge浏览器

angularJS 在edge浏览器上传文件,无法主动触发ng-click