«Edge 75» будет (является ли?) первым браузером Edge на базе Chromium. Как я могу проверить, является ли этот браузер Edge в Chrome?
(Что я действительно хочу знать, так это то, что браузер полностью поддерживает data-uri - https://caniuse.com/#feat=датаури - поэтому обнаружение функций будет еще лучше. Если вы знаете способ сделать это, я могу изменить вопрос)





Вы можете использовать пользовательский агент window.navigator, чтобы проверить, является ли браузер 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)"; // Match also / to avoid matching for the older Edge
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:
mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/74.0.3729.169 safari/537.36
Пользовательский агент браузера Edge:
mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/64.0.3282.140 safari/537.36 edge/18.17763
Пользовательский агент Microsoft Chromium Edge Dev:
mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/76.0.3800.0 safari/537.36 edg/76.0.167.1
Пользовательский агент Microsoft Chromium Edge Canary:
mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/76.0.3800.0 safari/537.36 edg/76.0.167.1
Поскольку мы видим, что пользовательский агент Microsoft Chromium Edge содержит ключевое слово «край», мы можем использовать его, чтобы определить, является ли браузер браузером Chromium Edge или браузером Chrome.
Это работает, но код странный... Плюс последняя строка...
Используя CanIUse, наиболее универсальной функцией, которая является не поддерживается в старом Edge (который использовал движок EdgeHtml), но поддерживается в Edge Chromium и везде (кроме IE), является реверсивный атрибут в списке OL. Преимущество этого атрибута в том, что он веками поддерживался во всем остальном.
(Это единственный, который я могу найти, который охватывает все другие браузеры, включая Opera Mini; если вас это не беспокоит, есть много других.)
Таким образом, вы можете использовать простое определение функций, чтобы узнать, используете ли вы Old Edge (или IE) —
var isOldEdgeOrIE = !('reversed' in document.createElement('ol'));
Поскольку я нашел этот вопрос с другой стороны, как на самом деле проверить, используется ли прехромный край, я нашел следующее решение (включая проверки 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;
За исключением того, что edge содержит edg, поэтому утверждение содержит ключевое слово "edg" вводит в заблуждение. Кроме того, я думаю, что слово ключевое слово используется слишком часто. Будет ли работать проверка текста "edg/"?