📄 browser-info.js
字号:
var notChecker = function(minVersion,maxVersion){return false};
var BrowserInfo = {
version :null,
isIE : notChecker,
isOpera : notChecker,
isGecko : notChecker,
isNetscape : notChecker,
isMozilla : notChecker,
isFirefox : notChecker,
isKHTML : notChecker,
isSafari : notChecker,
isKonqueror : notChecker,
isQuirks : function(){
return document["compatMode"] == "BackCompat" || document["compatMode"] == "QuirksMode";
}
};
function Version(version){
var vs = version.match(/([\d\.]*)(.*)?/);
this.flag = vs[2]?vs[2].replace(/^\s+(.*[^\s])\s+$/,'$1')||'':'';
vs = vs[1].match(/(\d+(\.\d+)?)/g);
for(var i = vs.length-1;i>=0;i--){
vs[i] = parseFloat(vs[i]);
}
this.version = version;
this.value = vs[0];
this.values = vs;
}
Version.prototype.compare = function(v){
if(typeof v == 'number'){
if(v == this.value){
for(var i = 1;i<this.values.length;i++){
if(this.values[i])return 1;
}
return 0;
}else{
//alert(v-this.value)
return v-this.value;
}
}else{
if(typeof v == 'string'){
if(v == this.version){
return 0;
}
v = new Version(v);
}
if(v.value == this.value){
var l = Math.min(this.values.length,v.values.length);
for(var i = 1;i<l;i++){
if(this.values[i])return 1;
}
l = v.values.length - this.value.length;
if(l>0){
return 1;
}else if(l<0){
return -1;
}
if(v.flag == this.flag){
return 0;
}else if(!v.flag ){
return 1;
}else if(!this.flag ){
return -1;
}else{
return v.flag>this.flag?1:-1;
}
}else{
return v.value - this.value
}
}
}
Version.prototype.before = function(v){
return this.compare(v)>=0;
}
Version.prototype.after = function(v){
return this.compare(v)<=0;
}
function buildBrowserChecker(version){
var v = new Version(version);
//function check(min,max){
return function(min,max){
if(min == null){
if(max == null){
return version;
}else{
return v.before(max)? version:false;
}
}else if(max == null){
return v.after(min)? version:false;
}else{
return v.after(min) && v.before(max)? version:false;
}
}
//return function(min,max){
// //alert(min+"-"+max+":"+check(min,max));
// return check(min,max);
//}
}
var ua = window.navigator.userAgent;
if(ua.indexOf("Opera") > 0){//Opera
var version = ua.replace(/.*Opera\s+([^; ]+).*/,'$1');
BrowserInfo.isOpera = buildBrowserChecker(version);
}else if(ua.indexOf(" MSIE ") > 0){//MSIE
var version = ua.replace(/.*MSIE\s+([^; ]+).*/,'$1');
BrowserInfo.isIE = buildBrowserChecker(version);
if(BrowserInfo.isIE(null,5.9)){
BrowserInfo.isQuirks = function(){return true;};
}
}else if(ua.indexOf("Gecko/") > 0){//mozilla netscape firefox ...
var version = ua.replace(/.*Gecko[\s\/]*([^;\/\) ]+).*/,'$1');
BrowserInfo.isGecko = buildBrowserChecker(version);
if(ua.indexOf("Firefox") > 0){
var version = ua.replace(/.*Firefox[\s\/]*([^;\/\) ]+).*/,'$1');
BrowserInfo.isFirefox = buildBrowserChecker(version);
}else if(ua.indexOf("Netscape") > 0){
var version = ua.replace(/.*Netscape[\s\/]*([^;\/\) ]+).*/,'$1');
BrowserInfo.isNetscape = buildBrowserChecker(version);
}else if(ua.indexOf("Mozilla") > 0){
var version = ua.replace(/.*rv:([^;\/\) ]+).*/,'$1');
BrowserInfo.isMozilla = buildBrowserChecker(version);
}
}else if(ua.indexOf("KHTML") > 0){//khtml
if(ua.indexOf("Konqueror") > 0){//Konqueror 糟糕的浏览器
//var version = ua.replace(/.*AppleWebKit\/([^;\/ ]+).*/,'$1');
//BrowserInfo.isKHTML = buildBrowserChecker(version);
BrowserInfo.isKHTML = function(){return true;};
version = ua.replace(/.*Konqueror\/([^;\/ ]+).*/,'$1');
BrowserInfo.isKonqueror = buildBrowserChecker(version);
}
}else if(ua.indexOf("Safari") > 0){//Safari khtml
//var version = ua.replace(/.*AppleWebKit\/([^;\/ ]+).*/,'$1');
//BrowserInfo.isKHTML = buildBrowserChecker(version);
BrowserInfo.isKHTML = function(){return true;};
version = ua.replace(/.*Safari\/([^;\/ ]+).*/,'$1');
BrowserInfo.isSafari = buildBrowserChecker(version);
}else{
//UNKNOW
}
//$JSI.navigator = BrowserInfo;
for(var n in BrowserInfo){
window.navigator[n] = BrowserInfo[n];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -