`
accpxudajian
  • 浏览: 451974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS获取客户端浏览器基本信息

阅读更多

 

/*
* 工具类获取:
* 客户端浏览器的类型,版本(version)
* 分辨率大小,当前窗口大小
* IP、端口、web工程名称
* 
***/
var ClientInfo ={
	/**
	* 拷贝某一个JSON属性到当前对象
	*@param selfJSON 当前JSON对象
	*@param targetJSON 即将拷贝的JSON对象
	*@param override targetJSON属性是否覆盖selfJSON的属性
	**/
	copyJSON : function(selfJSON,targetJSON,override){
		if(!!selfJSON===false){return {};}
		targetJSON = targetJSON ||{};
		override = typeof(override)?override:true;
		for(var p in targetJSON){
			if(override===true){
				selfJSON[p] = targetJSON[p];
			}else{
				if((p in selfJSON)===false){
					selfJSON[p] = targetJSON[p];
				}
			}
		}
	},
	/**
	* 拷贝某一个JSON属性到当前对象
	*@param selfJSON 当前JSON对象
	*@param targetJSON 即将拷贝的JSON对象(如果数组的值是K:V形式,那么K是selfJSON属性显示名称,V是targetJSON属性的名称)
	*@param propArr 拷贝的属性数组
	*@param override targetJSON属性是否覆盖selfJSON的属性
	**/
	copyPros :function(selfJSON,targetObj,propArr,override){
		if(!!selfJSON===false){return {};}
		targetObj = targetObj ||{};
		propArr = propArr ||[];
		override = typeof(override)?override:true;

		for(var i=0;i<propArr.length;i++){
			var name = propArr[i].split(":")[0];//属性显示的名称
			var p = propArr[i].split(":")[1] ||name;//属性原始名称
			if(override===true){
				selfJSON[p] = targetObj[p];
			}else{
				if( ((p in selfJSON)===false) && ((p in targetObj)===true)){
					selfJSON[name] = targetObj[p];
				}
			}
		}
	},
	get:function(){
		var JSON = {};
		var url2 = window.location.href;//"http://172.16.115.34:8080/exchange/";
		var reg=/http:\/\/([^\/:]+)(:[0-9]+)?\/([^\/]+)/gi;
		var res = reg.test(url2);

		JSON.href=window.location.href;
		JSON.isIE = (navigator.userAgent.indexOf("MSIE")>=0);
		JSON.isFF = (navigator.userAgent.indexOf("Firefox")>=0);
		JSON.isChrome = (navigator.userAgent.indexOf("Chrome")>=0);
		if(JSON.isIE){
			JSON.version = (navigator.userAgent.split("MSIE")[1]).split(";")[0].replace(/ /,'');
		}
		if(JSON.isFF){
			JSON.version = (navigator.userAgent.split("Firefox/")[1]);
		}
		if(JSON.isChrome){
			JSON.version = (navigator.userAgent.split("Chrome/")[1]).split("Safari")[0].replace(/ /,'');
		}
		if(res==true){
			ClientInfo.copyJSON(JSON,{server:RegExp.$1,port:RegExp.$2,sitename:RegExp.$3},false);	
		}
		ClientInfo.copyPros(JSON,navigator,['userAgent','platform','language','userLanguage','cookieEnabled'],false);	
		ClientInfo.copyPros(JSON,window.screen,["screenWidth:availWidth","screenHeight:availHeight"],false);	
		ClientInfo.copyPros(JSON,window.document.body,["bodyWidth:clientWidth","bodyHeight:clientHeight"],false);	
		
		return JSON;
	}
}

//TODOTEST 
var json = ClientInfo.get();
top.JSLogger.log(json);

 

 

/*
FF输出结果:
--cookieEnabled=true
--href=http://172.16.115.34:8080/exchange/
--isChrome=false
--isFF=true
--isIE=false
--language=zh-CN
--platform=Win32
--port=:8080
--screenHeight=728
--screenWidth=1366
--server=172.16.115.34
--sitename=exchange
--userAgent=Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18
--version=3.6.18



IE输出结果:
--cookieEnabled=true
--href=http://172.16.115.34:8080/exchange/
--isChrome=false
--isFF=false
--isIE=true
--platform=Win32
--port=:8080
--screenHeight=728
--screenWidth=1366
--server=172.16.115.34
--sitename=exchange
--userAgent=Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)
--userLanguage=zh-cn
--version=9.0

*/
 

 

 

 

 

 

 

 

愤怒的coder - 积少成多。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics