//浏览器检测 (function(){ window.sys = {}; //让外部可以访问 var ua = navigator.userAgent.toLowerCase(); //保存浏览器信息字符串并都转换成小写字母 var s = null; alert(ua); //alert(ua.match(/msie\s([\d.]+)/)); //查找匹配的字符串没有g并且还要返回园括号中的内容 //alert(ua.match(/chrome\/([\d.]+)/)); //查找匹配的字符串没有g并且还要返回园括号中的内容 //alert(ua.match(/version\/([\d.]+).*safari/)); //IE浏览器 if((/msie\s([\d.]+)/).test(ua)){ s = ua.match(/msie\s([\d.]+)/); sys.ie = s[1]; } //chrome浏览器 if((/chrome\/([\d.]+)/).test(ua)){ s = ua.match(/chrome\/([\d.]+)/); sys.chrome = s[1]; } //firefox浏览器 if((/firefox\/([\d.]+)/).test(ua)){ s = ua.match(/firefox\/([\d.]+)/); sys.firefox = s[1]; } //opera浏览器 if((/opera\/.*version\/([\d.]+)/).test(ua)){ s = ua.match(/opera\/.*version\/([\d.]+)/); sys.opera = s[1]; } //safari浏览器 if((/version\/([\d.]+).*safari/).test(ua)){ s = ua.match(/version\/([\d.]+).*safari/); sys.safari = s[1]; } })(); alert(sys.ie);
使用方法:
if(sys.ie){ alert('这是IE'+sys.ie+'浏览器'); }else if(sys.chrome){ alert('这是chrome'+sys.chrome+'浏览器'); }else if(sys.firefox){ alert('这是firefox'+sys.firefox+'浏览器'); }else if(sys.opera){ alert('这是opera'+sys.opera+'浏览器'); }else if(sys.safari){ alert('这是safari'+sys.safari+'浏览器'); }
利用三目的原理我们可以把兼容代码简写
//浏览器检测 (function(){ window.sys = {}; //让外部可以访问 var ua = navigator.userAgent.toLowerCase(); //保存浏览器信息字符串并都转换成小写字母 var s = null; //alert(ua); //alert(ua.match(/msie\s([\d.]+)/)); //查找匹配的字符串没有g并且还要返回园括号中的内容 //alert(ua.match(/chrome\/([\d.]+)/)); //查找匹配的字符串没有g并且还要返回园括号中的内容 //alert(ua.match(/version\/([\d.]+).*safari/)); /* //IE浏览器 if((/msie\s([\d.]+)/).test(ua)){ s = ua.match(/msie\s([\d.]+)/); sys.ie = s[1]; } //chrome浏览器 if((/chrome\/([\d.]+)/).test(ua)){ s = ua.match(/chrome\/([\d.]+)/); sys.chrome = s[1]; } //firefox浏览器 if((/firefox\/([\d.]+)/).test(ua)){ s = ua.match(/firefox\/([\d.]+)/); sys.firefox = s[1]; } //opera浏览器 if((/opera\/.*version\/([\d.]+)/).test(ua)){ s = ua.match(/opera\/.*version\/([\d.]+)/); sys.opera = s[1]; } //safari浏览器 if((/version\/([\d.]+).*safari/).test(ua)){ s = ua.match(/version\/([\d.]+).*safari/); sys.safari = s[1]; } */ (s = ua.match(/msie\s([\d.]+)/)) ? sys.ie = s[1]: (s = ua.match(/chrome\/([\d.]+)/)) ? sys.chrome = s[1]: (s = ua.match(/firefox\/([\d.]+)/)) ? sys.firefox = s[1]: (s = ua.match(/opera\/.*version\/([\d.]+)/)) ? sys.opera = s[1]: (s = ua.match(/version\/([\d.]+).*safari/)) ? sys.safari = s[1]:0; })();
(是否为真) ? L1 : L2
当为真时执行L1,为假是执行L2
L2也可以是判断
(是否为真) ? L1 : (是否为真) ? K1 : K2
当第二个为真时执行K1,为假是执行K2
以此类推最后得出
(是否为真) ? L1 :
(是否为真) ? K1 :
(是否为真) ? J1 : 0;