Jquery中利用navigator.userAgent.indexOf来判断浏览器类型,并进行了一下处理,建议学习Jquery的朋友学习下,了解一下思路。
主要使用的方法:$.browser.['浏览器关键字']
$(function() {
if($.browser.msie) {
alert("this is msie");
} else if($.browser.safari) {
alert("this is safari!");
} else if($.browser.mozilla) {
alert("this is mozilla!");
} else if($.browser.opera) {
alert("this is opera");
} else {
alert("i don't konw!");
}
我们看下jQuery的源码:
var userAgent = navigator.userAgent.toLowerCase();
// Figure out what browser is being used
jQuery.browser = {
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
safari: /webkit/.test( userAgent ),
opera: /opera/.test( userAgent ),
msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};
Jquery 使用的是通过正则来匹配userAgent判断浏览器的种类和版本.
version---浏览器版本
msie----ie浏览器(Microsoft Internet Explorer)
mozilla-火狐浏览器
opera--opera浏览器
如果我们要来判断当前浏览器是否是IE6应该如何来判断?
if($.browser.msie&&($.browser.version == "6.0")&&!$.support.style){
alert("ie6");
}
同样Jquery判断浏览器是否为IE7
if($.browser.msie&&($.browser.version == "7.0")){
alert("ie7");
}
如果不想使用Jquery,稍为修改下代码就可以为自己所用Js代码:
var userAgent = navigator.userAgent.toLowerCase();
browser={
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
safari: /webkit/.test( userAgent ),
opera: /opera/.test( userAgent ),
msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
}
调用的时候和jquery一样,只不过把$符号取掉就行了
如果是为了判断IE的版本我还是推荐用IE的条件表达式来书写JS
这个比我们手动通过$.browser来判断IE版本更精准,也不用去记jquery的browser的使用方法了
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn