【问题标题】:Detecting browser in Edge IE mode在 Edge IE 模式下检测浏览器
【发布时间】:2021-03-18 04:54:56
【问题描述】:

我一直在研究 Edge Chromium 中的“IE 模式”。

我目前在 IE 11 中运行的所有内容。

如果在 IE 模式下,你知道 window.navigator...javascript 东西是否仍然在“IE 模式”下返回 IE 11?

我研究表明“IE 模式”是在 Edge 窗口中启动的实际 IE 11(并且有一个单独启动 IE 11 的策略选项)。

下面建议的文档模式链接在此之前...代码已经检查了 window.navigator.UserAgent....等。我在看看是否有人知道这是否会在 Edge 中为“IE 模式”返回 IE 内容。

非常感谢。

【问题讨论】:

  • 欢迎来到 Stack Overflow!请访问help center,使用tour 了解内容和How to Ask。做一些研究,搜索关于SO的相关主题;如果您遇到困难,请发布您尝试的minimal reproducible example,并使用[<>] sn-p 编辑器记录输入和预期输出。
  • 这能回答你的问题吗? How to get browser "Document Mode"
  • 这似乎很容易自己尝试。获取 Edge Chromium 的副本,发送适当的标头以触发 IE 模式,打开控制台,检查值。
  • 是的,不幸的是,似乎所有“IE 模式”切换都已从 Edge 中删除,获得“IE 模式”的唯一方法是使用策略。我没有任何管理员访问权限,并且必须通过桌面支持中的第三方工作。我正在尝试预测问题...

标签: javascript internet-explorer-11 microsoft-edge


【解决方案1】:

你问过,“如果在 IE 模式下,你知道 window.navigator...javascript 东西是否在“IE 模式”下仍然返回 IE 11?

测试代码:

<!doctype html>
<html>
<head>
<title>
Test to detect IE browser
</title>

</head>
<body >
<div id="info"></div><br>
<h2>Test Page...</h2>

<script>
function Detect_IE() {
           var ua = window.navigator.userAgent;
         
           var msie = ua.indexOf('MSIE ');
           if (msie > 0) {
            
             return "IE " + parseInt( ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
           }
         
           var trident = ua.indexOf('Trident/');
           if (trident > 0) {
            
             var rv = ua.indexOf('rv:');
             return "IE " + parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
           }

           // other browser
           return "false";
         }
         var result=Detect_IE();
         if (result=="false")
         {
            document.getElementById("info").innerHTML +="<h2>Welcome to the site...</h2>";
         }
         else
         {
          document.getElementById("info").innerHTML += "<h2>Dear user you are using " + result + " <br><br> User Agent String = " + window.navigator.userAgent + "</h2>";
         }
</script>
</body>
</html>

在 IE 模式下使用 MS Edge 88.0.705.74 的测试结果:

【讨论】:

  • 非常感谢您为我运行该测试。我很感激。
  • 如果建议有帮助,我建议您接受它作为对这个问题的回答。它可以在未来帮助其他社区成员解决类似的问题。请参阅here。感谢您的理解。
  • 还有一个问题,根据 MS 文档,IE 模式启用 ActiveX。这包括所有 ActiveX 吗?在 IE 11 中,我必须在 Internet 选项中显式启用“初始化并编写未标记为可安全执行脚本的 ActiveX 控件”。这允许与 Ms Office(Word 和 Excel)和 IBM Notes DOM 进行脚本交互。由于 Edge 中的 IE 模式需要具有企业站点列表的策略,因此是否在 IE 模式中启用了所有 ActiveX?在 Edge IE 模式下,无法显式启用“未标记为安全”的 ActiveX 控件。非常感谢。
  • IE模式会使用实际的IE浏览器,所以我认为你可以尝试在Internet选项中启用Initialize and script ActiveX controls not marked as safe for scripting。它也应该适用于 IE 模式。
  • 据我所知,您可以在 Internet 选项中启用 Initialize and script ActiveX controls not marked as safe for scripting。如果在那里启用,则相同的设置将应用于 IE 模式。
【解决方案2】:

好的,谢谢。我还发现 Win 10 中的 Internet 选项位于控制面板中(不是 IE 独有的)。它看起来是 IE 选项界面,但范围更广(因此,如果您在 Edge 窗口中有 IE 模式,这些应该适用)。似乎可以在此处设置区域特定的东西,例如初始化和脚本 ActiveX 控件未标记为安全的脚本。我测试了这些,它们确实适用于 IE

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多