wake-up-neo.com

So richten Sie Windows 10 Edge-Browser mit Javascript an

Ich weiß, dass Sie die Feature-Erkennung nach Möglichkeit durchführen sollten. Können Sie jedoch in Javascript feststellen, ob der Browser der Microsoft Edge-Browser ist?

Ich pflege ein altes Produkt und möchte eine Warnung anzeigen, dass einige Funktionen beschädigt werden könnten, ohne viel Zeit in den alten Code einarbeiten zu müssen.

26
Willem de Wit

Versuchen Sie, Funktionen anstelle eines bestimmten Browsers zu erkennen. Es ist zukunftssicherer. Nur selten sollten Sie die Browsererkennung verwenden.

Wenn Sie nicht im Weg sind: Eine Option ist die Verwendung einer Bibliothek (es gibt viele Komplikationen bei Benutzeragentenzeichenfolgen) oder alternativ das manuelle Analysieren von window.navigator.userAgent.

Verwenden einer Parserbibliothek

# https://github.com/faisalman/ua-parser-js.

var parser = new UAParser();
var result = parser.getResult();

var name = result.browser.name;
var version = result.browser.version;

Raw Ansatz mit Javascript

# Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) \
# Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

window.navigator.userAgent.indexOf("Edge") > -1
33
sandstrom

Hier ist das einfache Skript zum Erkennen von Edge-Browsern 

if (/Edge/.test(navigator.userAgent)) {
    alert('Hello Microsoft User!');
}

Erklärung:

/Edge/

Ein regulärer Ausdruck, um nach der Zeichenfolge 'Edge' zu suchen. Diesen testen wir anhand der Eigenschaft 'navigator.userAgent'

9
Manoj Kadolkar

Die Useragent-Zeichenfolge enthält Edge/12.9600, wobei 12.9600 die Versionsnummer ist, mit der ich getestet habe. Dies unterscheidet sich vollständig von der Benutzeragentenzeichenfolge von Internet Explorer im 'Edge'-Modus.

Benutzeragentenzeichenfolge von Edge:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600

Benutzeragentenzeichenfolge von IE10 im Edge-Modus:

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident / 7.0; .NET4.0E; .NET4.0C; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0) .30729; Tablet PC 2.0; rv: 11.0 ) wie Gecko

Wenn Sie Javascript verwenden, überprüfen Sie einfach den Word-Rand in der Benutzeragentenzeichenfolge. Wenn Sie auch für andere Browser testen, stellen Sie sicher, dass Sie zuerst Edge aktivieren. Andernfalls erhalten Sie falsch positive Ergebnisse (z. B. Chrome oder Safari ...).

6
David Perfors

Sie sind mit diesem Problem nicht alleine. Zum Zeitpunkt der Erstellung dieses Beitrags identifiziert auch Google Analytics nicht ausschließlich den Edge-Browser. 

Am besten verweisen Sie auf den Benutzeragenten der Anfrage. Es wird ungefähr so ​​aussehen:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, Wie Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600

(Um den Benutzeragenten aus der Anforderung in JavaScript zu extrahieren, lesen Sie diesen Beitrag: Abrufen des Benutzeragenten mit JavaScript )

Edge ist nur in Windows 10 verfügbar. Sie können dieses Wissen verwenden, um sicherzustellen, dass Ihre Logik sicher ist. Suchen Sie im UA nach folgenden Werten:

  • Windows NT 10.0 - gibt an, dass sich der Benutzer unter Windows 10 befindet. 
  • Edge - gibt an, dass der Benutzer Edge ist

Sie könnten natürlich auch nach Edge suchen.

Update - 05/08

Google Analytics enthält jetzt Windows 10 und Edge als erstklassige Abmessungen. Beide können jetzt direkt gefiltert werden.

4
Mark Cooper
navigator.appVersion.indexOf('Edge') > -1
3
cesaraviles

Das Snippet, das ich hier habe, ist ebenfalls eine Kopie von SO. Es tut mir leid, dass ich Ihnen keinen Verweis auf den Originalcode geben konnte, aber ich habe es modifiziert IE 11 und MS Edge Window 10:

var get_ie_version = function () {
    var sAgent = window.navigator.userAgent;
    var Idx = sAgent.indexOf("MSIE");

    // If IE, return version number.
    if (Idx > 0) {
        return parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx)));
    }
    // Condition Check IF IE 11 and or MS Edge
    else if ( !!navigator.userAgent.match(/Trident\/7\./)
        || window.navigator.userAgent.indexOf("Edge") > -1 )
    {
        return 11;
    } else {
        return 0; //It is not IE
    }
};
2
Meily Chhon

https://msdn.Microsoft.com/de-de/library/ms537509%28v=vs.85%29.aspx

Versuchen Sie es mit:

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function checkVersion()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    if ( ver >= 8.0 ) 
      msg = "You're using a recent copy of Internet Explorer."
    else
      msg = "You should upgrade your copy of Internet Explorer.";
  }
  alert( msg );
}

Ersetzen Sie den String Microsoft Internet Explorer durch vielleicht etwas von Edge oder ähnlich.

EDIT: Sie können herausfinden, wie die Zeichenfolge des Benutzeragenten lautet:

alert(navigator.userAgent)
0
Martin Fischer