标签:else alert script document 包含 match cas family 火狐浏览器
<script type="text/javascript">
在很多浏览器使用统一功能上,由于不同浏览器的核心不同,实现的方式也会有所不同。所以,有时我们需要检测浏览器。
一.问题所在
在基础课堂中,我们采用了两种方案,一种是直接提供的,一种是分析的。这两种方案都比较繁琐,但比较细腻,而在实际上的使用上,则不需要。
二.设置代码
//浏览器检测
(function () {
window.sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
if ((/msie ([\d.]+)/).test(ua)) { //判断IE浏览器
s = ua.match(/msie ([\d.]+)/);
sys.ie = s[1];
}
if ((/firefox\/([\d.]+)/).test(ua)) { //判断火狐浏览器
s = ua.match(/firefox\/([\d.]+)/);
sys.firefox = s[1];
}
if ((/chrome\/([\d.]+)/).test(ua)) { //判断谷歌浏览器
s = ua.match(/chrome\/([\d.]+)/);
sys.chrome = s[1];
}
if ((/opera.*version\/([\d.]+)/).test(ua)) { //判断opera浏览器
s = ua.match(/opera.*version\/([\d.]+)/);
sys.opera = s[1];
}
if ((/version\/([\d.]+).*safari/).test(ua)) { //判断safari浏览器
s = ua.match(/version\/([\d.]+).*safari/);
sys.safari = s[1];
}
alert(sys.ie);
})();
PS:以上的写法包含了大量的重复代码,我们进行一下压缩。
//浏览器检测
(function (){
window.sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? sys.chrome = s[1] :
(s = ua.match(/opera.*version\/([\d.]+)/)) ? sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? sys.safari = s[1] : 0;
})();
标签:else alert script document 包含 match cas family 火狐浏览器
原文地址:http://www.cnblogs.com/wangminlomt5/p/6112196.html