正如标题所言使用 js 如何判断不同系统的浏览器类型,下面有个不错的示例,感兴趣的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
- function Env(){
- var ua=navigator.userAgent.toLowerCase();
- function check(r){
- return r.test(ua);
- }
- return {
- //判断环境,操作系统、浏览器、是否是https连接等
- DOC : document,
- isStrict : DOC.compatMode == "CSS1Compat" ,
- isOpera : check(/opera/) ,
- isChrome : check(/\bchrome\b/) ,
- iswebKit : check(/webkit/) ,
- isSafari : !check(/\bchrome\b/)&& check(/safari/) ,
- isSafari2 : !check(/\bchrome\b/)&& check(/safari/)&& check(/applewebkit\/4/), // unique to Safari 2
- isSafari3 : !check(/\bchrome\b/)&& check(/safari/)&& check(/version\/3/),
- isSafari4 : !check(/\bchrome\b/)&& check(/safari/)&& check(/version\/4/),
- isIE : !check(/opera/) && check(/msie/) ,
- isIE7 : !check(/opera/) && check(/msie/)&& check(/msie 7/) ,
- isIE8 : !check(/opera/) && check(/msie/)&& check(/msie 8/) ,
- isIE6 : !check(/opera/) && check(/msie/)&&!check(/msie 7/)&& !check(/msie 8/),
- isGecko : !check(/webkit/)&& check(/gecko/),
- isGecko2 : check(/webkit/)&& check(/rv:1\.8/),
- isGecko3 : check(/webkit/)&& check(/rv:1\.9/),
- isBorderBox : !check(/opera/) && check(/msie/)&& DOC.compatMode != "CSS1Compat",
- isWindows : check(/windows|win32/),
- isMac : check(/macintosh|mac os x/),
- isAir : check(/adobeair/),
- isLinux : check(/linux/),
- isSecure : /^https/i.test(window.location.protocol),
- /**
- * 是否为空,如果允许allowBlank=true,则当v=''时返回true
- */
- isEmpty : function(v, allowBlank){
- return v === null || v === undefined || ((this.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false);
- },
- /**
- * 是否为数组类型
- */
- isArray : function(v){
- return toString.apply(v) === '[object Array]';
- },
- /**
- * 是否为日期类型
- */
- isDate : function(v){
- return toString.apply(v) === '[object Date]';
- },
- /**
- * 是否为Object类型
- */
- isObject : function(v){
- return !!v && Object.prototype.toString.call(v) === '[object Object]';
- },
- /**
- * 判断是否是函数
- */
- isFunction : function(v){
- return toString.apply(v) === '[object Function]';
- },
- /**
- * 判断是否为数字
- */
- isNumber : function(v){
- return typeof v === 'number' && isFinite(v);
- },
- /**
- * 判断字符串类型
- */
- isString : function(v){
- return typeof v === 'string';
- },
- /**
- * 判断布尔类型
- */
- isBoolean : function(v){
- return typeof v === 'boolean';
- },
- /**
- * 判断是否为dom元素
- */
- isElement : function(v) {
- return !!v && v.tagName;
- },
- /**
- * 判断是否已定义
- */
- isDefined : function(v){
- return typeof v !== 'undefined';
- }
- }
然后 var env = env(); 用 env. 来取的所需的类型。
来源: