Quelqu'un peut me dire si j'ai raison de croire que jQuery $.navigateur est/a été abandonné?
Mon implémentations existantes de continuer à travailler? Si non, est-il facile à mettre en œuvre d'autres.
Quelqu'un peut me dire si j'ai raison de croire que jQuery $.navigateur est/a été abandonné?
Mon implémentations existantes de continuer à travailler? Si non, est-il facile à mettre en œuvre d'autres.
Une alternative consiste à copier $.navigateur à partir d'une version de jQuery qui n'a pas fait disparaître. Vous pouvez ensuite incorporés dans la version 1.9+
Juste ajouter ceci à la fin de votre fichier jQuery!
// 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;
};
})();
Si votre demandant pourquoi diable vous souhaitez utiliser ce quand il a été enlevé, bien.. bien ses parce que la plupart des plugins utiliser cette fonctionnalité et nous voulons nous assurer que les plugins de mise à jour du code jQuery trouver une solution.
À partir de la documentation:
L' $.navigateur propriété est supprimée de la version de jQuery 1.3, et ses fonctionnalités peuvent être déplacés à une équipe pris en charge plugin dans une future version de jQuery.
Donc, oui, c'est déconseillé, mais votre implémentations existantes continueront à fonctionner. Si la fonctionnalité est supprimé, il sera susceptible d'être facilement accessible à l'aide d'un plugin.
S'il y a une alternative... La réponse est "oui, probablement". Il est beaucoup, beaucoup mieux à faire fonction de détection à l'aide de $.support
plutôt que sur la détection du navigateur: détecter les fonctionnalité dont vous avez besoin, pas le navigateur qui le fournit. La plupart des caractéristiques importantes qui varient d'un navigateur à l'autre sont détectés.
Mise à jour le 16 février 2013: En jQuery 1.9, cette fonctionnalité a été supprimée (docs). Il est de loin préférable de ne pas l'utiliser. Si vous avez vraiment, vraiment doit utiliser ses fonctionnalités, vous pouvez le restaurer avec le jQuery Migrate plugin.
pour détecter ie utiliser ceci:
if(/*@cc_on!@*/false)
{
//You are using ie >=4
}
else
{
//You are using other browser
}
Pour détecter tous les:
if(/*@cc_on!@*/false)
{
//You are using ie >=4
}
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
}
"L' $.navigateur propriété est supprimée de la version de jQuery 1.3, et ses fonctionnalités peuvent être déplacés à une équipe pris en charge plugin dans une future version de jQuery." À partir de http://api.jquery.com/jQuery.browser/
lonesomeday's réponse est absolument correct, j'ai juste pensé que je voudrais ajouter à cette friandise. J'avais fait une méthode tout à l'heure pour arriver navigateur en Vanilla JS et, éventuellement, incurvé pour remplacer jQuery.browser
dans les dernières versions de jQuery. Il n'interfère pas avec n'importe quelle partie de la nouvelle lib jQuery, mais fournit la même fonctionnalité de la traditionnelle jQuery.browser
de l'objet, ainsi que quelques autres petites fonctionnalités.
/** 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/7eSmd/
*
* @extends jQuery
* @namespace jQuery.browser
* @example jQuery.browser.version
* @example jQuery.browser.browser == 'browserNameInLowerCase'
* @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 == true if [chrome || safari || mozilla]
*/
;;(function(a){!a.browser&&1.9<=parseFloat(a.fn.jquery)&&(a.extend({browser:{}}),a.browser.init=function(){var b={};try{navigator.vendor?/Chrome/.test(navigator.userAgent)?(b.browser="Chrome",b.version=parseFloat(navigator.userAgent.split("Chrome/")[1].split("Safari")[0])):/Safari/.test(navigator.userAgent)?(b.browser="Safari",b.version=parseFloat(navigator.userAgent.split("Version/")[1].split("Safari")[0])):/Opera/.test(navigator.userAgent)&&(b.Opera="Safari",b.version=parseFloat(navigator.userAgent.split("Version/")[1])):/Firefox/.test(navigator.userAgent)?(b.browser="mozilla",b.version=parseFloat(navigator.userAgent.split("Firefox/")[1])):(b.browser="MSIE",/MSIE/.test(navigator.userAgent)?b.version=parseFloat(navigator.userAgent.split("MSIE")[1]):b.version="edge")}catch(c){b=c}a.browser[b.browser.toLowerCase()]=b.browser.toLowerCase();a.browser.browser=b.browser;a.browser.version=b.version;a.browser.chrome="chrome"==a.browser.browser.toLowerCase();a.browser.safari="safari"==a.browser.browser.toLowerCase();a.browser.opera="opera"==a.browser.browser.toLowerCase();a.browser.msie="msie"==a.browser.browser.toLowerCase();a.browser.mozilla="mozilla"==a.browser.browser.toLowerCase();a.browser.webkit=a.browser.chrome||a.browser.safari||a.browser.mozilla},a.browser.init())})(jQuery);
/* Just cut & paste above code for easy use! */
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.