17.项目 1-博客前端:封装库--浏览器检测

2019-05-15  本文已影响0人  好像在哪见过你丶

学习要点:

1.问题所在
2.设置代码

在很多浏览器使用统一功能上,由于不同浏览器的核心不同,实现的方式也会有所不同。
所以,有时我们需要检测浏览器。

一.问题所在

在基础课堂中,我们采用了两种方案,一种是直接提供的,一种是分析的。这两种方案
都比较繁琐,但比较细腻,而在实际上的使用上,则不需要。

二.设置代码

//浏览器检测
(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;
})();

感谢收看本次教程!

上一篇 下一篇

猜你喜欢

热点阅读