如何从 Internet Explorer 无缝重定向到 Microsoft Edge?

cor*_*cav 7 internet-explorer redirect express microsoft-edge

我试图在我的网站上弃用 Internet Explorer,并且当有人试图在 Internet Explorer 上访问该站点时,我想复制 Twitter 的行为。

从我到目前为止拼凑的过程来看,似乎有一个基于检测浏览器类型的用户代理字符串的服务器端检查,然后发送一些东西重定向到https://go.microsoft.com/fwlink /?linkid=2135547但同时打开 Microsoft Edge 并将其定向到https://twitter.com

对我来说,令人困惑的部分是他们如何设法打开 Microsoft Edge,而无需打开询问您是否要打开应用程序链接的对话框。我见过一些网站用于microsoft-edge:url在 Microsoft Edge 中打开 url,但它总是询问您是否要打开该应用程序。

如果有人有关于他们如何管理它或如何复制它的信息,我们将不胜感激。

如果有帮助,我的网站是建立在 express.js 上的,我正在尝试的重定向基于res.redirect某些 express 中间件。

Mol*_*nda 15

这似乎是 Internet Explorer 和 Edge 之间的特殊接口,它使用名为“IEtoEdge BHO”的 Internet Explorer 浏览器帮助程序对象以及 Microsoft 维护的不兼容网站列表。

这需要 Microsoft Edge Stable 87 或更高版本。

https://docs.microsoft.com/en-us/deployedge/edge-learnmore-neededge

以下代码与行为非常相似,但 Edge 中用于迁移浏览数据和首选项的对话框除外。我没有收到任何提示,所以可能已经改变了。

<script>
  if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) {
    window.location = 'microsoft-edge:' + window.location;
    setTimeout(function() {
      window.location = 'https://go.microsoft.com/fwlink/?linkid=2135547';
    }, 1);
  }
</script>
Run Code Online (Sandbox Code Playgroud)

  • 如果用户使用的是 Windows 7 但未安装 Edge,会发生什么情况? (4认同)

Dee*_*SFT 5

当我尝试在 IE 11 浏览器中访问 Twitter 时,它会在页面上显示以下消息。它没有重定向到任何 Microsoft 页面,也没有在 Edge 浏览器中启动 Twitter 页面。

在此处输入图片说明

所以我不确定,你是如何在你的机器上得到这种行为的。

我可以看到您想要避免要求用户允许网站在 Edge 浏览器中打开的弹出窗口。

我没有得到任何可以抑制该弹出窗口的设置。我建议尝试使用可以识别浏览器并显示链接的JS代码在Edge浏览器中打开网站。如果用户单击该链接,则不会显示弹出窗口和 Edge 浏览器将直接启动。

示例代码:

<!doctype html>
<html>
    <head>
        <script>
            function FindIE() {
  
              var ua = window.navigator.userAgent;
              var msie = ua.indexOf("MSIE ");
  
              if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) 
              {     document.write("The Internet Explorer browser is not supported by this site. We suggest you visit the site using supported browsers." + "<A HREF='microsoft-edge:http://<<Your site address..........>>'>Click here to launch the site in the MS Edge browser</A>");
                  
              }
              else  
              {
                document.write("Welcome...");
              }
  
              return false;
              }
              FindIE()
        </script>
    </head>
    <body>
             
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在 IE 11 浏览器中的输出:

在此处输入图片说明

此外,您可以尝试修改代码以使其与 express.js 一起使用