2016-04-27 14 views

Antwort

3

Die User-Agent-Zeichenfolge wird bedeutungslos und äußerst unzuverlässig.

Sie sollten keine User Agent-Zeichenfolge verwenden, stattdessen sollten Sie Feature-Erkennung verwenden. Wenn Sie Feature X verwenden müssen, testen Sie, ob X verfügbar ist.

Aber auch um Ihre Frage direkt zu beantworten, gibt es keine JS Alternative.

2

Browser-Identifikation, basierend auf den Benutzer-Agent-String Detektieren unzuverlässig und nicht zu empfehlen, da die Zeichenfolge User Agent Benutzer konfigurierbar ist.

Zum Beispiel:

  • In Firefox können Sie die Präferenz general.useragent.override in etwa ändern: config. Einige Firefox-Erweiterungen tun das; Dies ändert jedoch nur den HTTP-Header, der gesendet wird, und hat keinen Einfluss auf die Browsererkennung durch JavaScript-Code.
  • Opera 6+ ermöglicht es Benutzern, den Browser Identifizierungs-String über ein Menü
  • Microsoft Internet Explorer verwendet die Windows-Registry
  • Safari und iCab einstellen können Benutzer den Browser-User-Agent Zeichenfolge ändern Internet Explorer oder Netscape Strings vordefiniert über ein Menü.

Source

Ich denke, dass sie versuchen vollständig diese Funktion von JavaScript zu entfernen.

Update:

Object-Oriented JavaScript, 2nd Edition: Es ist besser, nicht auf den User-Agent-String zu verlassen, sondern Funktion nutzen zu können Sniffing statt (auch Fähigkeit Erkennung genannt). Der Grund dafür ist, dass es schwer ist alle Browser und ihre verschiedenen Versionen zu verfolgen. Es ist viel einfacher, einfach zu überprüfen, ob die Funktion, die Sie verwenden möchten, in der Tat im Browser des Benutzers verfügbar ist. Zum Beispiel hat einen Blick auf den folgenden Code:

if (typeof window.addEventListener === 'function') { 

    // feature is supported, let's use it 
} 
else { 

    // hmm, this feature is not supported, will have to 
    // think of another way 
} 
+1

Modernisierer bereits verwendet Feature-Erkennung. Zum Beispiel: https://github.com/Modernizr/Modernizr/blob/master/src/prefixedCSSValue.js – Quentin

+0

Ja, Sie haben Recht –

+0

Wie Feature-Detect für die Notwendigkeit, um einen Rendering-Fehler zu arbeiten? – Jules

Verwandte Themen