Ich habe nach einer Lösung für mich selbst gesucht, da jQuery 1.9.1 und oben haben die $.browser
Funktionalität. Ich habe diese kleine Funktion entwickelt, die für mich funktioniert. Sie benötigt eine globale Variable (ich habe meine _browser genannt), um zu prüfen, welcher Browser es ist. Ich habe eine jsfiddle um zu veranschaulichen, wie es verwendet werden kann. Natürlich kann es für andere Browser erweitert werden, indem man einfach einen Test für _browser.foo hinzufügt, wobei foo der Name des Browsers ist. Ich habe nur die gängigen Browser getestet.
detectBrowser()
_browser = {};
function detectBrowser() {
var uagent = navigator.userAgent.toLowerCase(),
match = '';
_browser.chrome = /webkit/.test(uagent) && /chrome/.test(uagent) &&
!/edge/.test(uagent);
_browser.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent);
_browser.msie = /msie/.test(uagent) || /trident/.test(uagent) ||
/edge/.test(uagent);
_browser.safari = /safari/.test(uagent) && /applewebkit/.test(uagent) &&
!/chrome/.test(uagent);
_browser.opr = /mozilla/.test(uagent) && /applewebkit/.test(uagent) &&
/chrome/.test(uagent) && /safari/.test(uagent) &&
/opr/.test(uagent);
_browser.version = '';
for (x in _browser) {
if (_browser[x]) {
match = uagent.match(
new RegExp("(" + (x === "msie" ? "msie|edge" : x) + ")( |\/)([0-9]+)")
);
if (match) {
_browser.version = match[3];
} else {
match = uagent.match(new RegExp("rv:([0-9]+)"));
_browser.version = match ? match[1] : "";
}
break;
}
}
_browser.opera = _browser.opr;
delete _browser.opr;
}
detectBrowser();
console.log(_browser)
Um zu prüfen, ob der aktuelle Browser Opera ist, müssen Sie Folgendes tun
if (_browser.opera) { // Opera specific code }
bearbeiten Die Formatierung wurde korrigiert, die Erkennung für IE11 und Opera/Chrome wurde korrigiert, browserResult wurde zu result geändert. Jetzt ist die Reihenfolge der _browser
Tasten spielt keine Rolle. Aktualisiert jsFiddle Link.
2015/08/11 bearbeiten Neuer Testfall für Internet Explorer 12 (EDGE) hinzugefügt, ein kleines Regexp-Problem behoben. Aktualisiert jsFiddle Link.