Obwohl beide Webkit-basierte Browser sind, werden in Safari Anführungszeichen in der URL in Safari-Urlencodes gesetzt, in Chrome jedoch nicht.
Daher muss ich in JS zwischen diesen beiden unterscheiden.
In den Browsererkennungsdokumenten von jQuery wird "Safari" als veraltet markiert.
Gibt es eine bessere Methode oder halte ich mich vorerst nur an den veralteten Wert?
javascript
jquery
browser-detection
AndreKR
quelle
quelle
$.browser.safari === true
. eeek.Antworten:
Verwenden einer Mischung aus
feature detection
undUseragent
Zeichenfolge:Verwendung:
if (is_safari) alert('Safari');
Oder verwenden Sie Folgendes nur für Safari:
quelle
(Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36)
Im Folgenden wird Safari 3.0+ identifiziert und von Chrome unterschieden:
quelle
Leider erkennen die obigen Beispiele auch den Standardbrowser von Android als Safari, was nicht der Fall ist. ich benutzte
navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf('Android') == -1
quelle
Zur Überprüfung von Safari habe ich Folgendes verwendet:
Es funktioniert richtig.
quelle
Anscheinend wäre die einzige zuverlässige und akzeptierte Lösung die Erkennung von Merkmalen wie folgt:
quelle
Ich habe nur überprüft, ob navigator.userAgent ein iPhone- oder iPad-Wort enthält
quelle
Wenn Sie den Browser überprüfen, verwenden Sie
$.browser
. Wenn Sie jedoch die Funktionsunterstützung überprüfen (empfohlen), verwenden Sie$.support
.Sie sollten $ .browser NICHT verwenden, um Funktionen auf der Seite zu aktivieren / deaktivieren. Grund dafür ist, dass es nicht zuverlässig ist und im Allgemeinen einfach nicht empfohlen wird.
Wenn Sie Funktionsunterstützung benötigen, empfehle ich modernizr .
quelle
location.hash = '"blah"'; if (location.hash == '#%22blah%22') alert('is Safari');
?http://jsfiddle.net/s1o943gb/10/
quelle
Eine sehr nützliche Möglichkeit, dies zu beheben, besteht darin, die Webkit-Version des Browsers zu erkennen und zu überprüfen, ob es mindestens die ist, die wir benötigen, oder etwas anderes zu tun.
Mit jQuery geht es so:
Dies bietet eine sichere und dauerhafte Lösung für Probleme mit den verschiedenen Webkit-Implementierungen des Browsers.
Viel Spaß beim Codieren!
quelle
Dies bestimmt, ob der Browser Safari ist oder nicht.
quelle
quelle
Ich benutze, um Apple Browser Engine zu erkennen, diese einfache JavaScript-Bedingung:
quelle
Generische FUNKTION
quelle