일반적으로 버전 번호가 둘 사이에 있는지 확인하는 데 사용됩니다. 특정 버전 번호보다 큰지 확인하는 데에도 사용할 수 있습니다. 🎜>
PS: 버전 사양이 일치하는지 확인해야 합니다. 예를 들어 모두 .로 구분된 n자리 버전 번호입니다.
var APP = {}; //判断指定版本是否在版本范围之间,需确保版本规范一致;比如 (..,..,..) APP.betweenVersion = function(curr,start,end,separator){ if(curr == start || curr == end){ return true; } var separator = separator || '.'; var curr = curr.split(separator); var start = start.split(separator); var end = end.split(separator); var gtStart = false; var ltEnd = false; gtStart = APP.gtTargetVersion( APP.compareVersionEle(curr,start) ); if(!gtStart){ return false; } return !APP.gtTargetVersion( APP.compareVersionEle(curr,end) ); }; APP.compareVersionEle = function(curr,target){ var len = curr.length; var temp = []; var left,right; for(var i=;i<len;i++){ left = +curr[i]; right = +target[i]; if(left == right){ temp.push(); }else if(left > right){ temp.push(); }else{ temp.push(-); } } return temp; }; APP.gtTargetVersion = function(arr){ var res = true; var curr,next; for(var i=,len=arr.length;i<len;i++){ curr = arr[i]; next = arr[i+]; if( curr>next ){ if(curr == ){ res = false; break; } if(curr == ){ res = true; break; } }else if(curr == next){ if(curr == -){ res = false; break; } if(curr == ){ res = true; break; } }else{ if(curr == -){ res = false; break; } if(curr == ){ res = true; break; } } } // console.log(res); return res; } var res = APP.betweenVersion('...','...','...','.'); console.log(res);
현재 방식은 크게 두 가지가 있습니다. 하나는 컷 버전 번호를 숫자 배열로 변환해야 한다는 것이고, 다른 하나는 크기를 비교할 때 세 가지 값의 비교로 변환한다는 것입니다. of -1 0 1. 이렇게 하면 구분에 관계없이 버전 번호가 얼마나 큽니까? 여러 부분으로 나누어서 정확하게 비교할 수 있습니다.
브라우저 유형 및 버전을 감지하는 자바스크립트 코드를 공유하겠습니다
객체/특징 감지 방법
이 방법은 (브라우저의 정확한 모델이 아닌) 브라우저의 기능을 확인하는 일반적인 방법입니다. 대부분의 JS 전문가는 이러한 방식으로 작성된 스크립트가 미래에도 사용할 수 있다고 믿기 때문에 이 접근 방식이 가장 적절하다고 생각합니다.
//获取IE浏览器的版本号 //返回数值,显示IE的主版本号 function getIEVer() { var ua = navigator.userAgent; //获取用户端信息 var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置 if (b < 0) { return 0; } return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本号字符串,并转换为数值 } alert(getIEVer()); //返回数值8(我的IE8)
사용자 에이전트 문자열 감지 방법
사용자 에이전트 문자열은 브라우저 이름과 버전을 포함하여 웹 브라우저에 대한 풍부한 정보를 제공합니다.
var ua = navigator.userAgent.toLowerCase(); //获取用户端信息 var info = { ie: /msie/.test(ua) && !/opera/.test(ua), //匹配IE浏览器 op: /opera/.test(ua), //匹配Opera浏览器 sa: /version.*safari/.test(ua), //匹配Safari浏览器 ch: /chrome/.test(ua), //匹配Chrome浏览器 ff: /gecko/.test(ua) && !/webkit/.test(ua) //匹配Firefox浏览器 }; (info.ie) && alert("IE浏览器"); (info.op) && alert("Opera浏览器"); (info.sa) && alert("Safari浏览器"); (info.ff) && alert("Firefox浏览器"); (info.ch) && alert("Chrome浏览器");
var isIE = (navigator.appName == "Microsoft Internet Explorer");
//获取IE浏览器的版本号 //返回数值,显示IE的主版本号 function getIEVer() { var ua = navigator.userAgent; //获取用户端信息 var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置 if (b < 0) { return 0; } return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本号字符串,并转换为数值 } alert(getIEVer()); //返回数值7
var isWin = (navigator.userAgent.indexOf("Win") != -1); //如果是Windows系统,则返回true var isMac = (navigator.userAgent.indexOf("Mac") != -1); //如果是Macintosh系统,则返回true var isUnix = (navigator.userAgent.indexOf("X11") != -1); //如果是Unix系统,则返回true var isLinux = (navigator.userAgent.indexOf("Linux") != -1); //如果是Linux系统,则返回true