如何在Javascript中检测Microsoft Chromium Edge(chredge,edgium)

时间:2019-05-29 12:04:23

标签: microsoft-edge chromium browser-detection data-uri

“ Edge 75”将是(是)第一个基于Chromium的Edge浏览器。如何检查此浏览器是否为Chrome上的Edge?

(我真正想知道的是,浏览器是否完全支持data-uri的https://caniuse.com/#feat=datauri-因此功能检测甚至会更好。如果您知道这样做的方法,那么我可以更改问题)< / p>

3 个答案:

答案 0 :(得分:5)

使用CanIUse,这是最普遍的功能,在旧版Edge(使用EdgeHtml引擎)上不受支持,但在Edge Chromium和其他所有地方(IE除外)受支持,是 reversed attribute on an OL list 。此属性的优点是在其他所有条件下均受支持。

(这是我发现的唯一一个涵盖所有其他浏览器(包括Opera Mini)的浏览器;如果您不用担心,这里有plenty of others。)

因此,您可以使用简单的功能检测来查看您是否在Old Edge(或IE)上-

var isOldEdgeOrIE = !('reversed' in document.createElement('ol'));

答案 1 :(得分:1)

您可以使用window.navigator userAgent检查浏览器是Microsoft Chromium Edge还是Chrome。

代码如下:

<script>
    var browser = (function (agent) {
        switch (true) {
            case agent.indexOf("edge") > -1: return "edge";
            case agent.indexOf("edg") > -1: return "chromium based edge (dev or canary)";
            case agent.indexOf("opr") > -1 && !!window.opr: return "opera";
            case agent.indexOf("chrome") > -1 && !!window.chrome: return "chrome";
            case agent.indexOf("trident") > -1: return "ie";
            case agent.indexOf("firefox") > -1: return "firefox";
            case agent.indexOf("safari") > -1: return "safari";
            default: return "other";
        }
    })(window.navigator.userAgent.toLowerCase());
    document.body.innerHTML = window.navigator.userAgent.toLowerCase() + "<br>" + browser;
</script>

Chrome浏览器的userAgent:

  

mozilla / 5.0(Windows nt 10.0; win64; x64)applewebkit / 537.36(khtml,   像壁虎)chrome / 74.0.3729.169 safari / 537.36

Edge浏览器userAgent:

  

mozilla / 5.0(Windows nt 10.0; win64; x64)applewebkit / 537.36(khtml,   像壁虎)chrome / 64.0.3282.140 safari / 537.36 edge / 18.17763

Microsoft Chromium Edge Dev userAgent:

  

mozilla / 5.0(Windows nt 10.0; win64; x64)applewebkit / 537.36(khtml,   像壁虎)chrome / 76.0.3800.0 safari / 537.36 edg / 76.0.167.1

Microsoft Chromium Edge Canary userAgent:

  

mozilla / 5.0(Windows nt 10.0; win64; x64)applewebkit / 537.36(khtml,   像壁虎)chrome / 76.0.3800.0 safari / 537.36 edg / 76.0.167.1

我们可以看到Microsoft Chromium Edge userAgent包含“ edg ”关键字,我们可以使用它来检测浏览器是Chromium Edge浏览器还是Chrome浏览器。

答案 2 :(得分:1)

由于我从另一端发现了这个问题,如何实际检查是否使用了铬前边缘,所以我找到了以下解决方案(包括IE检查):

  // Edge < 18
  if (window.navigator.userAgent.indexOf('Edge') !== -1) {
    return true;
  }
  // IE 11
  if (window.document.documentMode) {
    return true;
  }
  // IE 10
  if (navigator.appVersion.indexOf('MSIE 10') !== -1) {
    return true;
  }
  return false;