/*
* 工具类获取:
* 客户端浏览器的类型,版本(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 - 积少成多。

668

被折叠的 条评论
为什么被折叠?



