Die $ .browser-Eigenschaft ist in jQuery 1.3 veraltet, und ihre Funktionalität kann in einer zukünftigen Version von jQuery auf ein vom Team unterstütztes Plugin verschoben werden.
Ja, es ist veraltet, aber Ihre vorhandenen Implementierungen funktionieren weiterhin. Wenn die Funktionalität entfernt wird, ist sie wahrscheinlich über ein Plugin leicht zugänglich.
Ob es eine Alternative gibt ... Die Antwort lautet "Ja, wahrscheinlich". Es ist weitaus besser, die Funktionserkennung mithilfe der $.supportBrowsererkennung durchzuführen: Erkennen Sie die tatsächlich benötigte Funktion, nicht den Browser, der sie bereitstellt. Damit werden die wichtigsten Funktionen erkannt, die von Browser zu Browser unterschiedlich sind.
Update 16. Februar 2013: In jQuery 1.9 wurde diese Funktion entfernt ( docs ). Es ist weitaus besser, es nicht zu benutzen. Wenn Sie die Funktionalität wirklich, wirklich nutzen müssen , können Sie sie mit dem jQuery Migrate- Plugin wiederherstellen .
lonesomeday - Vielen Dank für diesen zusätzlichen Kommentar. Wir alle versuchen unser Wissen aufzubauen und brauchen manchmal Hilfe.
Mark_54
6
und $.browserwurde entfernt vonjQuery 1.9
diEcho
6
Es gibt so viele Macken mit IE und verschiedenen IE-Versionen. Ja, IE 7 unterstützt Animationen, aber NEIN Ich möchte nicht, dass meine Benutzer es sehen! Es ist schrecklich. $ .Browser ist in diesem Fall also wirklich praktisch.
Elger Mensonides
94
Zweite Frage
Funktionieren meine vorhandenen Implementierungen weiterhin? Wenn nicht, gibt es eine einfach zu implementierende Alternative.
Die Antwort lautet ja , aber nicht ohne ein wenig Arbeit.
$ .browser ist ein offizielles Plugin, das in älteren Versionen von jQuery enthalten war. Wie bei jedem Plugin können Sie es einfach kopieren und in Ihr Projekt integrieren oder einfach am Ende jeder jQuery-Version hinzufügen.
Ich habe den Code für Sie extrahiert, falls Sie ihn verwenden möchten.
// Limit scope pollution from any deprecated API
(function() {
var matched, browser;
// Use of jQuery.browser is frowned upon.
// More details: http://api.jquery.com/jQuery.browser
// jQuery.uaMatch maintained for back-compat
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
matched = jQuery.uaMatch( navigator.userAgent );
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
jQuery.sub = function() {
function jQuerySub( selector, context ) {
return new jQuerySub.fn.init( selector, context );
}
jQuery.extend( true, jQuerySub, this );
jQuerySub.superclass = this;
jQuerySub.fn = jQuerySub.prototype = this();
jQuerySub.fn.constructor = jQuerySub;
jQuerySub.sub = this.sub;
jQuerySub.fn.init = function init( selector, context ) {
if ( context&& context instanceof jQuery && !(context instanceof jQuerySub) ) {
context = jQuerySub( context );
}
return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
};
jQuerySub.fn.init.prototype = jQuerySub.fn;
var rootjQuerySub = jQuerySub(document);
return jQuerySub;
};
})();
Wenn Sie fragen, warum jemand ein abgeschriebenes Plugin benötigt, habe ich die folgende Antwort vorbereitet.
In erster Linie lautet die Antwort Kompatibilität. Da jQuery Plugin-basiert ist, haben sich einige Entwickler für die Verwendung von $ .browser entschieden. Mit den neuesten Versionen von jQuery, die $ .browser nicht enthalten, wurden alle diese Plugins unbrauchbar gemacht.
jQuery hat ein Migrations-Plugin veröffentlicht , das für Entwickler erstellt wurde, um festzustellen, ob ihre Plugins veraltete Abhängigkeiten wie $ .browser verwendet haben.
Obwohl dies Entwicklern geholfen hat, ihre Plugins zu patchen. jQuery hat $ .browser vollständig gelöscht, sodass das obige Update wahrscheinlich die einzige Lösung ist, bis Ihre Entwickler das oben genannte Patches oder Integrationsprogramm verwenden.
Das Migrations-Plugin ist ein gutes Tool, mit dem Benutzer eine Liste veralteter Funktionen anzeigen können, sofern diese in den Skripten vorhanden sind. Es bietet Funktionen für veraltete Funktionen. Nicht als Patch gedacht.
EminezArtus
1
Einverstanden. Ich habe mich seitdem entschlossen, bei 1.8.3 zu bleiben, während ich auf die nächste Generation des Skripts von Drittanbietern warte.
Twamley
1
+1, es gibt Fehler in Dingen wie dem placeholderAttribut bis zum IE10, mit denen wir uns befassen müssen und die wir dafür benötigen $.browser...
Izkata
6
Hier präsentiere ich eine alternative Möglichkeit, einen Browser basierend auf der Verfügbarkeit von Funktionen zu erkennen.
Um nur IE zu erkennen, können Sie Folgendes verwenden:
if(/*@cc_on!@*/false || typeof ScriptEngineMajorVersion === "function")
{
//You are using IE>=4 (unreliable for IE11)
}
else
{
//You are using other browser
}
So erkennen Sie die beliebtesten Browser:
if(/*@cc_on!@*/false || typeof ScriptEngineMajorVersion === "function")
{
//You are using IE >= 4 (unreliable for IE11!!!)
}
elseif(window.chrome)
{
//You are using Chrome or Chromium
}
elseif(window.opera)
{
//You are using Opera >= 9.2
}
elseif('MozBoxSizing' in document.body.style)
{
//You are using Firefox or Firefox based >= 3.2
}
elseif({}.toString.call(window.HTMLElement).indexOf('Constructor')+1)
{
//You are using Safari >= 3.1
}
else
{
//Unknown
}
Diese Antwort wurde aktualisiert, da IE11 die bedingte Kompilierung (der /*@cc_on!@*/falseTrick) nicht mehr unterstützt .
Sie können überprüfen, ob IE11 die bedingte Javascript-Kompilierung entfernt hat. Weitere Informationen zu diesem Thema.
Ich habe den dort vorgelegten Vorschlag verwendet.
Alternativ können Sie typeof document.body.style.msTransform == "string"oder document.body.style.msTransform !== window.undefinedoder sogar verwenden 'msTransform' in document.body.style.
Vielen Dank für das Teilen. Mein Date Picker funktionierte nicht, nachdem ich auf VS2013 aktualisiert und Jquery and Juice vom Nuget Package Manager heruntergeladen hatte. Fügte den Code ein und alles funktionierte wieder.
user1270384
2
Bitte schön. Ich verwende diesen Code, um alle Browser in Randfällen mit einigen meiner Javascript-Codes zu behandeln. Wenn dies nicht mehr funktioniert und Sie es feststellen, teilen Sie es mir bitte so bald wie möglich mit.
Ismael Miguel
/ * @ cc_on! @ * / false gibt false für IE Edge zurück
Alex
@alex Welche genaue Version und Build verwenden Sie und in welchem Betriebssystem? Wenn Sie eine virtuelle Maschine verwenden, können Sie bitte die Software und die Version angeben?
Ismael Miguel
1
@alex Sorry die Verzögerung. Ich habe die Antwort jetzt korrigiert. IE wirklich vermasselt. Aber ich habe es geschafft. Sagen Sie mir bitte, was Sie denken.
Ismael Miguel
3
Aktualisiert! 24.03.2015 (Bildlauf unter Stunde)
Die Antwort von lonesomeday ist absolut richtig. Ich dachte nur, ich würde diesen Leckerbissen hinzufügen. Ich hatte vor einiger Zeit eine Methode entwickelt, um einen Browser in Vanilla JS zu erhalten, und sie schließlich gebogen, um sie jQuery.browserin späteren Versionen von jQuery zu ersetzen . Es stört keinen Teil der neuen jQuery-Bibliothek, bietet jedoch die gleiche Funktionalität wie das herkömmliche jQuery.browserObjekt sowie einige andere kleine Funktionen.
Neue erweiterte Version!
Ist für neuere Browser viel gründlicher. Auch 90 +% Genauigkeit beim mobilen Testen! Ich werde nicht 100% sagen, da ich nicht in jedem mobilen Browser getestet habe, aber die neue Funktion fügt $.browser.mobileBoolean / String hinzu. Es ist falsch, wenn es nicht mobil ist, andernfalls ist es ein String-Name für das mobile Gerät oder den Browser (beste Vermutungen wie: Android, RIM Tablet, iPod usw.).
Eine mögliche Einschränkung ist, dass einige ältere (nicht unterstützte) Browser möglicherweise nicht funktionieren, da sie vollständig von userAgentZeichenfolgen abhängig sind .
JS minimiert
/* quick & easy cut & paste */
;;(function($){if(!$.browser&&1.9<=parseFloat($.fn.jquery)){var a={browser:void0,version:void0,mobile:!1};navigator&&navigator.userAgent&&(a.ua=navigator.userAgent,a.webkit=/WebKit/i.test(a.ua),a.browserArray="MSIE Chrome Opera Kindle Silk BlackBerry PlayBook Android Safari Mozilla Nokia".split(" "),/Sony[^ ]*/i.test(a.ua)?a.mobile="Sony":/RIM Tablet/i.test(a.ua)?a.mobile="RIM Tablet":/BlackBerry/i.test(a.ua)?a.mobile="BlackBerry":/iPhone/i.test(a.ua)?a.mobile="iPhone":/iPad/i.test(a.ua)?a.mobile="iPad":/iPod/i.test(a.ua)?a.mobile="iPod":/Opera Mini/i.test(a.ua)?a.mobile="Opera Mini":/IEMobile/i.test(a.ua)?a.mobile="IEMobile":/BB[0-9]{1,}; Touch/i.test(a.ua)?a.mobile="BlackBerry":/Nokia/i.test(a.ua)?a.mobile="Nokia":/Android/i.test(a.ua)&&(a.mobile="Android"),/MSIE|Trident/i.test(a.ua)?(a.browser="MSIE",a.version=/MSIE/i.test(navigator.userAgent)&&0<parseFloat(a.ua.split("MSIE")[1].replace(/[^0-9\.]/g,""))?parseFloat(a.ua.split("MSIE")[1].replace(/[^0-9\.]/g,"")):"Edge",/Trident/i.test(a.ua)&&/rv:([0-9]{1,}[\.0-9]{0,})/.test(a.ua)&&(a.version=parseFloat(a.ua.match(/rv:([0-9]{1,}[\.0-9]{0,})/)[1].replace(/[^0-9\.]/g,"")))):/Chrome/.test(a.ua)?(a.browser="Chrome",a.version=parseFloat(a.ua.split("Chrome/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Opera/.test(a.ua)?(a.browser="Opera",a.version=parseFloat(a.ua.split("Version/")[1].replace(/[^0-9\.]/g,""))):/Kindle|Silk|KFTT|KFOT|KFJWA|KFJWI|KFSOWI|KFTHWA|KFTHWI|KFAPWA|KFAPWI/i.test(a.ua)?(a.mobile="Kindle",/Silk/i.test(a.ua)?(a.browser="Silk",a.version=parseFloat(a.ua.split("Silk/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Kindle/i.test(a.ua)&&/Version/i.test(a.ua)&&(a.browser="Kindle",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,"")))):/BlackBerry/.test(a.ua)?(a.browser="BlackBerry",a.version=parseFloat(a.ua.split("/")[1].replace(/[^0-9\.]/g,""))):/PlayBook/.test(a.ua)?(a.browser="PlayBook",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/BB[0-9]{1,}; Touch/.test(a.ua)?(a.browser="Blackberry",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Android/.test(a.ua)?(a.browser="Android",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Safari/.test(a.ua)?(a.browser="Safari",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Firefox/.test(a.ua)?(a.browser="Mozilla",a.version=parseFloat(a.ua.split("Firefox/")[1].replace(/[^0-9\.]/g,""))):/Nokia/.test(a.ua)&&(a.browser="Nokia",a.version=parseFloat(a.ua.split("Browser")[1].replace(/[^0-9\.]/g,""))));if(a.browser)for(var b in a.browserArray)a[a.browserArray[b].toLowerCase()]=a.browser==a.browserArray[b];$.extend(!0,$.browser={},a)}})(jQuery);
/* quick & easy cut & paste */
"Die $ .browser-Eigenschaft ist in jQuery 1.3 veraltet und ihre Funktionalität wird möglicherweise in einer zukünftigen Version von jQuery auf ein vom Team unterstütztes Plugin verschoben."
Diese Eigenschaft wurde in jQuery 1.9 entfernt und ist nur über das Plugin jQuery.migrate verfügbar.
Sie können beispielsweise jquery-migrate-1.4.1.jsIhren vorhandenen Code oder Plugins, die $ .browser verwenden, weiterhin verwenden, während Sie einen Weg finden, $ .browser in Zukunft vollständig aus Ihrem Code zu entfernen.
Antworten:
Aus der Dokumentation :
Ja, es ist veraltet, aber Ihre vorhandenen Implementierungen funktionieren weiterhin. Wenn die Funktionalität entfernt wird, ist sie wahrscheinlich über ein Plugin leicht zugänglich.
Ob es eine Alternative gibt ... Die Antwort lautet "Ja, wahrscheinlich". Es ist weitaus besser, die Funktionserkennung mithilfe der
$.support
Browsererkennung durchzuführen: Erkennen Sie die tatsächlich benötigte Funktion, nicht den Browser, der sie bereitstellt. Damit werden die wichtigsten Funktionen erkannt, die von Browser zu Browser unterschiedlich sind.Update 16. Februar 2013: In jQuery 1.9 wurde diese Funktion entfernt ( docs ). Es ist weitaus besser, es nicht zu benutzen. Wenn Sie die Funktionalität wirklich, wirklich nutzen müssen , können Sie sie mit dem jQuery Migrate- Plugin wiederherstellen .
quelle
$.support
ist, wie erkenne ich, ob ich IE 7 verwende und daher CSS-Optimierungen hinzufügen muss, um meine Seite zu reparieren?$.browser
wurde entfernt vonjQuery 1.9
Zweite Frage
Die Antwort lautet ja , aber nicht ohne ein wenig Arbeit.
$ .browser ist ein offizielles Plugin, das in älteren Versionen von jQuery enthalten war. Wie bei jedem Plugin können Sie es einfach kopieren und in Ihr Projekt integrieren oder einfach am Ende jeder jQuery-Version hinzufügen.
Ich habe den Code für Sie extrahiert, falls Sie ihn verwenden möchten.
// Limit scope pollution from any deprecated API (function() { var matched, browser; // Use of jQuery.browser is frowned upon. // More details: http://api.jquery.com/jQuery.browser // jQuery.uaMatch maintained for back-compat jQuery.uaMatch = function( ua ) { ua = ua.toLowerCase(); var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || /(webkit)[ \/]([\w.]+)/.exec( ua ) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || /(msie) ([\w.]+)/.exec( ua ) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || []; return { browser: match[ 1 ] || "", version: match[ 2 ] || "0" }; }; matched = jQuery.uaMatch( navigator.userAgent ); browser = {}; if ( matched.browser ) { browser[ matched.browser ] = true; browser.version = matched.version; } // Chrome is Webkit, but Webkit is also Safari. if ( browser.chrome ) { browser.webkit = true; } else if ( browser.webkit ) { browser.safari = true; } jQuery.browser = browser; jQuery.sub = function() { function jQuerySub( selector, context ) { return new jQuerySub.fn.init( selector, context ); } jQuery.extend( true, jQuerySub, this ); jQuerySub.superclass = this; jQuerySub.fn = jQuerySub.prototype = this(); jQuerySub.fn.constructor = jQuerySub; jQuerySub.sub = this.sub; jQuerySub.fn.init = function init( selector, context ) { if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { context = jQuerySub( context ); } return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; jQuerySub.fn.init.prototype = jQuerySub.fn; var rootjQuerySub = jQuerySub(document); return jQuerySub; }; })();
Wenn Sie fragen, warum jemand ein abgeschriebenes Plugin benötigt, habe ich die folgende Antwort vorbereitet.
In erster Linie lautet die Antwort Kompatibilität. Da jQuery Plugin-basiert ist, haben sich einige Entwickler für die Verwendung von $ .browser entschieden. Mit den neuesten Versionen von jQuery, die $ .browser nicht enthalten, wurden alle diese Plugins unbrauchbar gemacht.
jQuery hat ein Migrations-Plugin veröffentlicht , das für Entwickler erstellt wurde, um festzustellen, ob ihre Plugins veraltete Abhängigkeiten wie $ .browser verwendet haben.
Obwohl dies Entwicklern geholfen hat, ihre Plugins zu patchen. jQuery hat $ .browser vollständig gelöscht, sodass das obige Update wahrscheinlich die einzige Lösung ist, bis Ihre Entwickler das oben genannte Patches oder Integrationsprogramm verwenden.
Info: jQuery.browser
quelle
placeholder
Attribut bis zum IE10, mit denen wir uns befassen müssen und die wir dafür benötigen$.browser
...Hier präsentiere ich eine alternative Möglichkeit, einen Browser basierend auf der Verfügbarkeit von Funktionen zu erkennen.
Um nur IE zu erkennen, können Sie Folgendes verwenden:
if(/*@cc_on!@*/false || typeof ScriptEngineMajorVersion === "function") { //You are using IE>=4 (unreliable for IE11) } else { //You are using other browser }
So erkennen Sie die beliebtesten Browser:
if(/*@cc_on!@*/false || typeof ScriptEngineMajorVersion === "function") { //You are using IE >= 4 (unreliable for IE11!!!) } else if(window.chrome) { //You are using Chrome or Chromium } else if(window.opera) { //You are using Opera >= 9.2 } else if('MozBoxSizing' in document.body.style) { //You are using Firefox or Firefox based >= 3.2 } else if({}.toString.call(window.HTMLElement).indexOf('Constructor')+1) { //You are using Safari >= 3.1 } else { //Unknown }
Diese Antwort wurde aktualisiert, da IE11 die bedingte Kompilierung (der
/*@cc_on!@*/false
Trick) nicht mehr unterstützt .Sie können überprüfen, ob IE11 die bedingte Javascript-Kompilierung entfernt hat. Weitere Informationen zu diesem Thema.
Ich habe den dort vorgelegten Vorschlag verwendet.
Alternativ können Sie
typeof document.body.style.msTransform == "string"
oderdocument.body.style.msTransform !== window.undefined
oder sogar verwenden'msTransform' in document.body.style
.quelle
Die Antwort von lonesomeday ist absolut richtig. Ich dachte nur, ich würde diesen Leckerbissen hinzufügen. Ich hatte vor einiger Zeit eine Methode entwickelt, um einen Browser in Vanilla JS zu erhalten, und sie schließlich gebogen, um sie
jQuery.browser
in späteren Versionen von jQuery zu ersetzen . Es stört keinen Teil der neuen jQuery-Bibliothek, bietet jedoch die gleiche Funktionalität wie das herkömmlichejQuery.browser
Objekt sowie einige andere kleine Funktionen.Neue erweiterte Version!
Ist für neuere Browser viel gründlicher. Auch 90 +% Genauigkeit beim mobilen Testen! Ich werde nicht 100% sagen, da ich nicht in jedem mobilen Browser getestet habe, aber die neue Funktion fügt
$.browser.mobile
Boolean / String hinzu. Es ist falsch, wenn es nicht mobil ist, andernfalls ist es ein String-Name für das mobile Gerät oder den Browser (beste Vermutungen wie: Android, RIM Tablet, iPod usw.).Eine mögliche Einschränkung ist, dass einige ältere (nicht unterstützte) Browser möglicherweise nicht funktionieren, da sie vollständig von
userAgent
Zeichenfolgen abhängig sind .JS minimiert
/* quick & easy cut & paste */ ;;(function($){if(!$.browser&&1.9<=parseFloat($.fn.jquery)){var a={browser:void 0,version:void 0,mobile:!1};navigator&&navigator.userAgent&&(a.ua=navigator.userAgent,a.webkit=/WebKit/i.test(a.ua),a.browserArray="MSIE Chrome Opera Kindle Silk BlackBerry PlayBook Android Safari Mozilla Nokia".split(" "),/Sony[^ ]*/i.test(a.ua)?a.mobile="Sony":/RIM Tablet/i.test(a.ua)?a.mobile="RIM Tablet":/BlackBerry/i.test(a.ua)?a.mobile="BlackBerry":/iPhone/i.test(a.ua)?a.mobile="iPhone":/iPad/i.test(a.ua)?a.mobile="iPad":/iPod/i.test(a.ua)?a.mobile="iPod":/Opera Mini/i.test(a.ua)?a.mobile="Opera Mini":/IEMobile/i.test(a.ua)?a.mobile="IEMobile":/BB[0-9]{1,}; Touch/i.test(a.ua)?a.mobile="BlackBerry":/Nokia/i.test(a.ua)?a.mobile="Nokia":/Android/i.test(a.ua)&&(a.mobile="Android"),/MSIE|Trident/i.test(a.ua)?(a.browser="MSIE",a.version=/MSIE/i.test(navigator.userAgent)&&0<parseFloat(a.ua.split("MSIE")[1].replace(/[^0-9\.]/g,""))?parseFloat(a.ua.split("MSIE")[1].replace(/[^0-9\.]/g,"")):"Edge",/Trident/i.test(a.ua)&&/rv:([0-9]{1,}[\.0-9]{0,})/.test(a.ua)&&(a.version=parseFloat(a.ua.match(/rv:([0-9]{1,}[\.0-9]{0,})/)[1].replace(/[^0-9\.]/g,"")))):/Chrome/.test(a.ua)?(a.browser="Chrome",a.version=parseFloat(a.ua.split("Chrome/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Opera/.test(a.ua)?(a.browser="Opera",a.version=parseFloat(a.ua.split("Version/")[1].replace(/[^0-9\.]/g,""))):/Kindle|Silk|KFTT|KFOT|KFJWA|KFJWI|KFSOWI|KFTHWA|KFTHWI|KFAPWA|KFAPWI/i.test(a.ua)?(a.mobile="Kindle",/Silk/i.test(a.ua)?(a.browser="Silk",a.version=parseFloat(a.ua.split("Silk/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Kindle/i.test(a.ua)&&/Version/i.test(a.ua)&&(a.browser="Kindle",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,"")))):/BlackBerry/.test(a.ua)?(a.browser="BlackBerry",a.version=parseFloat(a.ua.split("/")[1].replace(/[^0-9\.]/g,""))):/PlayBook/.test(a.ua)?(a.browser="PlayBook",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/BB[0-9]{1,}; Touch/.test(a.ua)?(a.browser="Blackberry",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Android/.test(a.ua)?(a.browser="Android",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Safari/.test(a.ua)?(a.browser="Safari",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Firefox/.test(a.ua)?(a.browser="Mozilla",a.version=parseFloat(a.ua.split("Firefox/")[1].replace(/[^0-9\.]/g,""))):/Nokia/.test(a.ua)&&(a.browser="Nokia",a.version=parseFloat(a.ua.split("Browser")[1].replace(/[^0-9\.]/g,""))));if(a.browser)for(var b in a.browserArray)a[a.browserArray[b].toLowerCase()]=a.browser==a.browserArray[b];$.extend(!0,$.browser={},a)}})(jQuery); /* quick & easy cut & paste */
jsFiddle "jQuery Plugin: Browser abrufen (Extended Alt Edition)"
/** jQuery.browser * @author J.D. McKinstry (2014) * @description Made to replicate older jQuery.browser command in jQuery versions 1.9+ * @see http://jsfiddle.net/SpYk3/wsqfbe4s/ * * @extends jQuery * @namespace jQuery.browser * @example jQuery.browser.browser == 'browserNameInLowerCase' * @example jQuery.browser.version * @example jQuery.browser.mobile @returns BOOLEAN * @example jQuery.browser['browserNameInLowerCase'] * @example jQuery.browser.chrome @returns BOOLEAN * @example jQuery.browser.safari @returns BOOLEAN * @example jQuery.browser.opera @returns BOOLEAN * @example jQuery.browser.msie @returns BOOLEAN * @example jQuery.browser.mozilla @returns BOOLEAN * @example jQuery.browser.webkit @returns BOOLEAN * @example jQuery.browser.ua @returns navigator.userAgent String */ ;;(function($){if(!$.browser&&1.9<=parseFloat($.fn.jquery)){var a={browser:void 0,version:void 0,mobile:!1};navigator&&navigator.userAgent&&(a.ua=navigator.userAgent,a.webkit=/WebKit/i.test(a.ua),a.browserArray="MSIE Chrome Opera Kindle Silk BlackBerry PlayBook Android Safari Mozilla Nokia".split(" "),/Sony[^ ]*/i.test(a.ua)?a.mobile="Sony":/RIM Tablet/i.test(a.ua)?a.mobile="RIM Tablet":/BlackBerry/i.test(a.ua)?a.mobile="BlackBerry":/iPhone/i.test(a.ua)?a.mobile="iPhone":/iPad/i.test(a.ua)?a.mobile="iPad":/iPod/i.test(a.ua)?a.mobile="iPod":/Opera Mini/i.test(a.ua)?a.mobile="Opera Mini":/IEMobile/i.test(a.ua)?a.mobile="IEMobile":/BB[0-9]{1,}; Touch/i.test(a.ua)?a.mobile="BlackBerry":/Nokia/i.test(a.ua)?a.mobile="Nokia":/Android/i.test(a.ua)&&(a.mobile="Android"),/MSIE|Trident/i.test(a.ua)?(a.browser="MSIE",a.version=/MSIE/i.test(navigator.userAgent)&&0<parseFloat(a.ua.split("MSIE")[1].replace(/[^0-9\.]/g,""))?parseFloat(a.ua.split("MSIE")[1].replace(/[^0-9\.]/g,"")):"Edge",/Trident/i.test(a.ua)&&/rv:([0-9]{1,}[\.0-9]{0,})/.test(a.ua)&&(a.version=parseFloat(a.ua.match(/rv:([0-9]{1,}[\.0-9]{0,})/)[1].replace(/[^0-9\.]/g,"")))):/Chrome/.test(a.ua)?(a.browser="Chrome",a.version=parseFloat(a.ua.split("Chrome/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Opera/.test(a.ua)?(a.browser="Opera",a.version=parseFloat(a.ua.split("Version/")[1].replace(/[^0-9\.]/g,""))):/Kindle|Silk|KFTT|KFOT|KFJWA|KFJWI|KFSOWI|KFTHWA|KFTHWI|KFAPWA|KFAPWI/i.test(a.ua)?(a.mobile="Kindle",/Silk/i.test(a.ua)?(a.browser="Silk",a.version=parseFloat(a.ua.split("Silk/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Kindle/i.test(a.ua)&&/Version/i.test(a.ua)&&(a.browser="Kindle",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,"")))):/BlackBerry/.test(a.ua)?(a.browser="BlackBerry",a.version=parseFloat(a.ua.split("/")[1].replace(/[^0-9\.]/g,""))):/PlayBook/.test(a.ua)?(a.browser="PlayBook",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/BB[0-9]{1,}; Touch/.test(a.ua)?(a.browser="Blackberry",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Android/.test(a.ua)?(a.browser="Android",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Safari/.test(a.ua)?(a.browser="Safari",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].replace(/[^0-9\.]/g,""))):/Firefox/.test(a.ua)?(a.browser="Mozilla",a.version=parseFloat(a.ua.split("Firefox/")[1].replace(/[^0-9\.]/g,""))):/Nokia/.test(a.ua)&&(a.browser="Nokia",a.version=parseFloat(a.ua.split("Browser")[1].replace(/[^0-9\.]/g,""))));if(a.browser)for(var b in a.browserArray)a[a.browserArray[b].toLowerCase()]=a.browser==a.browserArray[b];$.extend(!0,$.browser={},a)}})(jQuery); /* - - - - - - - - - - - - - - - - - - - */ var b = $.browser; console.log($.browser); // see console, working example of jQuery Plugin console.log($.browser.chrome); for (var x in b) { if (x != 'init') $('<tr />').append( $('<th />', { text: x }), $('<td />', { text: b[x] }) ).appendTo($('table')); }
table { border-collapse: collapse; } th, td { border: 1px solid; padding: .25em .5em; vertical-align: top; } th { text-align: right; } textarea { height: 500px; width: 100%; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <table></table>
quelle
Von http://api.jquery.com/jQuery.browser/
quelle
$.browser
wird in v1.9Aus der offiziellen Dokumentation unter http://api.jquery.com/jQuery.browser/ :
Sie können beispielsweise
jquery-migrate-1.4.1.js
Ihren vorhandenen Code oder Plugins, die $ .browser verwenden, weiterhin verwenden, während Sie einen Weg finden, $ .browser in Zukunft vollständig aus Ihrem Code zu entfernen.quelle