Maison  >  Article  >  interface Web  >  L'extension Jquery utilise la méthode $.browser

L'extension Jquery utilise la méthode $.browser

巴扎黑
巴扎黑original
2017-07-08 10:00:531845parcourir

En raison de jquery 1.9.0 ou supérieur, jquery a supprimé la prise en charge de $.browser et utilise la prise en charge de $.pour déterminer le type de navigateur. En conséquence, de nombreux plug-ins précédents ont signalé des erreurs

"Uncaught TypeError : Impossible de lire la propriété 'msie' de undefined".

Il en existe de nombreux en ligne. La solution est :

Déterminez le type de navigateur :

<span style="white-space:pre">	</span>$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());
	$.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());
	$.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());
	$.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());



après le signe > renvoie vrai/faux, qui peut être directement utilisée pour remplacer le $.browser.msie d'origine, etc.


Vérifiez s'il s'agit d'IE6 :
// Ancien

<span style="white-space:pre">	</span>if ($.browser.msie && 7 > $.browser.version) {}

// Nouveau

<span style="white-space:pre">	</span>if (&#39;undefined&#39; == typeof(document.body.style.maxHeight)) {}

Vérifiez s'il s'agit d'IE 6-8 :

<span style="white-space:pre">	</span>if (!$.support.leadingWhitespace) {}
********************************************* ******* **************************

L'idée que nous adoptons ci-dessous est d'utiliser le héritage

mécanisme La version jquery 1.11.1 a été étendue pour prendre en charge la méthode $.browser, ce qui a atteint l'objectif de compatibilité avec les composants précédents

Enregistrez le code ci-dessus dans jquery. -
jQuery.extend({
	browser: function() 
	{
		var
	    rwebkit = /(webkit)\/([\w.]+)/,
	    ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
	    rmsie = /(msie) ([\w.]+)/,
	    rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,    
	    browser = {},
	    ua = window.navigator.userAgent,
	    browserMatch = uaMatch(ua);

	    if (browserMatch.browser) {
	        browser[browserMatch.browser] = true;
	        browser.version = browserMatch.version;
	    }
	    return { browser: browser };
	},
});

function uaMatch(ua) 
{
        ua = ua.toLowerCase();

        var match = rwebkit.exec(ua)
                    || ropera.exec(ua)
                    || rmsie.exec(ua)
                    || ua.indexOf("compatible") < 0 && rmozilla.exec(ua)
                    || [];

        return {
            browser : match[1] || "",
            version : match[2] || "0"
        };
}
browser.js et utilisez-le.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn