您好,欢迎访问一九零五行业门户网

前端开发过程中浏览器版本的两种判定方法_javascript技巧

在网上查找浏览器及版本判定方法有好多,此处小弟总结一二,以节省大家时间。
1.jquery的方法:
通过正则表达式可判定常用浏览器及其版本。
复制代码 代码如下:
function allinfo(){
var ua = navigator.useragent;
ua = ua.tolowercase();
var match = /(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
!/compatible/.test(ua) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(ua) || [];
//如果需要获取浏览器版本号:match[2]
switch(match[1]){
case msie: //ie
if (parseint(match[2]) === 6){ //ie6
alert(ie6);
alert(暂时不支持ie7.0及以下版本浏览器,请升级您的浏览器版本!);
//document.getelementbyid(hid).style.display = none;
// document.getelementbyid(show).style.display = block;
//document.getelementbyid(nosee_b).style.display = none;
}
else if (parseint(match[2]) === 7) { //ie7
alert(ie7);
//document.getelementbyid(hid).style.display = none;
// document.getelementbyid(show).style.display = block;
}
else if (parseint(match[2]) === 8){ //ie8
alert(ie8);
}
else if(parseint(match[2]) === 9){
alert(ie9);
//document.getelementbyid(hid).style.display = none;
}
break;
case webkit: //safari or chrome
//alert(safari or chrome);
// document.getelementbyid(middle).style.display = none;
break;
case opera: //opera
alert(opera);
break;
case mozilla: //firefox
alert(firefox);
//document.getelementbyid(hid).style.display = none;
break;
default:
break;
}
}
此处用到“===”,了解到其与“==”和“=”的关系
=这个就不多说了,开发中是给参数赋值。
== equality 等同,=== identity 恒等。
==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等。
for example:
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的tostring或者valueof方法。js核心内置类,会尝试valueof先于tostring;例外的是date,date利用的是tostring转换。
2.html中的注释方法
(1)html中的注释方法
可使用如下代码检测当前ie浏览器的版本(注意:在非ie浏览器中是看不到效果的),此方法用于ie5及以上版本。
html 的注释格式是 , ie 对html注释做了一些扩展,使之可以支持条件判断表达式:
当表达式expression 为true 的时候,显示 html 内容。
[if ie] 判断是否ie
[if !ie] 判断是否不是ie
[if lt ie 5.5] 判断是否是ie5.5 以下版本。 ([if lte ie 6] 判断是否等于ie6 版本或者以下 ([if gt ie 5] 判断是否ie5以上版本 (> )
[if gte ie 7] 判断是否 ie7 版本或者以上
[if !(ie 7)] 判断是否不是ie7
[if (gt ie 5)&(lt ie 7)] 判断是否大于ie5, 小于ie7
[if (ie 6)|(ie 7)] 判断是否ie6 或者 ie7
lte:就是less than or equal to的简写,也就是小于或等于的意思。 lt :就是less than的简写,也就是小于的意思。 gte:就是greater than or equal to的简写,也就是大于或等于的意思。 gt :就是greater than的简写,也就是大于的意思。 ! : 就是不等于的意思,跟javascript里的不等于判断符相同
例子:
复制代码 代码如下:
(2)应该如何应用条件注释
因为ie各版本的浏览器对我们制作的web标准的页面解释不一样,具体就是对css的解释不同,我们为了兼容这些,可运用条件注释来各自定义,最终达到兼容的目的。
比如:
这其中就区分了ie7和ie6向下的浏览器对css的执行,达到兼容的目的。同时,首行默认的css.css还能与其他非ie浏览器实现兼容。
注意:默认的css样式应该位于html文档的首行,进行条件注释判断的所有内容必须位于该默认样式之后。 比如如下代码,在ie浏览器下执行显示为红色,而在非ie浏览器下显示为黑色。如果把条件注释判断放在首行,则不能实现。该例题很能说明网页对ie浏览器和非ie浏览器间的兼容性问题解决。
其它类似信息

推荐信息