浏览器用户代理检测

var client=function(){
	//呈现引擎
	var engine={
			ie:0,
			gecko:0,
			webkit:0,
			khtml:0,
			opera:0,
			ver:null
	};
	//浏览器
	var browser={
			//主要浏览器
			ie:0,
			firefox:0,
			safari:0,
			konq:0,
			opera:0,
			chrome:0,
			//具体版本
			ver:null
	};
	//平台,设备和操作系统
	var system={
			win:false,
			win_ver:null,
			max:false,
			x11:false,
			//移动设备
			iphone:false,
			ipod:false,
			ipad:false,
			ios:false,
			android:false,
			nokiaN:false,
			winMobile:false,
			//游戏系统
			wii:false,
			ps:false
	};
	//测试呈现引擎和浏览器
	var ua=navigator.userAgent;
	if(window.opera){
		engine.ver=browser.ver=window.opera.version();
		engine.opera=browser.opera=parseFloat(engine.ver);
	}else if(/AppleWebkit/(S+)/.test(ua)){
		engine.ver=RegExp["$1"];
		engine.webkit=parseFloat(engine.ver);
		if(/Chrome/(S+)/.test(ua)){
			browser.ver=RegExp["$1"];
			browser.chrome=parseFloat(browser.ver);
		}else if(/Version/(S+)/.test(ua)){
			browser.ver=RegExp["$1"];
			browser.safari=parseFloat(browser.ver);
		}else {
			var safariVersion=1;
			if(engine.webkit<100){
				safariVersion=1;
			}else if(engine.webkit<312){
				safariVersion=1.2;
			}else if(engine.webkit<412){
				safariVersion=1.3;
			}else{
				safariVersion=2;
			}
			browser.safari=browser.ver=safariVersion;
		}
	}else if(/KHTML/(S+)/.test(ua) || /Konqueror/([^;]+)/.test(ua)){
		engine.ver=browser.ver=RegExp["$1"];
		engine.khtml=browser.konq=parseFloat(engine.ver);
	}else if(/rv:([^)]+)) Gecko/d{8}/.test(ua)){
		engine.ver=RegExp["$1"];
		engine.gecko=parseFloat(engine.ver);
		//确定是不是firefox
		if(/Firefox/(S+)/.test(ua)){
			browser.ver=RegExp["$1"];
			browser.firefox=parseFloat(engine.ver);
		}
	}else if(/MSIE ([^;]+)/.test(ua)){
		engine.ver=browser.ver=RegExp["$1"];
		engine.ie=browser.ie=parseFloat(engine.ver);
	}
	//检测浏览器
	browser.ie=engine.ie;
	browser.opera=engine.opera;
	
	//检测平台
	var p=navigator.platform;
	system.win=p.indexOf("Win")==0;
	system.max=p.indexOf("Max")==0;
	system.wii=(p=="X11")||(p.indexOf("Linux")==0);
	
	if(system.win){
		if(/Win(?:dows )?([^do]{2})s?(d+.d+)?/.test(ua)){
			if(RegExp["$1"]=="NT"){
				switch (RegExp["$2"]) {
				case "5.0":
					system.win_ver="2000";
					break;
				case "5.1":
					system.win_ver="XP";
					break;
				case "6.0":
					system.win_ver="Vista";
					break;
				case "6.1":
					system.win_ver="7";
					break;
				default:
					system.win_ver="NT";
					break;
				}
			}else if(RegExp["$1"]=="9x"){
				system.win_ver="ME";
			}else {
				system.win_ver=RegExp["$1"];
			}
		}
	}
	return {
		engine:engine,
		browser:browser,
		system:system
	};
}();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浏览器 headers检测是一种用于识别和获取浏览器相关信息的技术。当我们访问一个网页时,浏览器会发送一系列的HTTP请求头部(headers)给服务器,这些头部包含了浏览器的一些信息,如用户代理(User-Agent)、接受内容类型(Accept)、Referer等。 浏览器headers检测可以用于网站分析、优化用户体验以及判断浏览器兼容性。通过检测请求头部中的用户代理信息,网站开发人员可以了解访问其网站的浏览器类型、版本、操作系统等信息,从而根据不同浏览器的特点来优化网站的呈现和交互效果,提升用户体验。 此外,通过浏览器headers检测还可以判断浏览器的兼容性。不同的浏览器对于各种Web标准的支持程度不同,开发人员可以根据浏览器headers中的信息来判断所访问的浏览器是否支持某些新特性或者需要使用特定的兼容性方案。 浏览器headers检测的方法可以是服务器端检测,也可以是客户端检测。服务器端检测是通过服务器获取请求头部的信息来进行分析;而客户端检测通常通过JavaScript来获取,然后将信息发送给服务器进行处理。常用的客户端检测方法包括navigator.userAgent和navigator.appVersion等。 需要注意的是,浏览器headers检测并不是绝对可靠的,因为用户可以通过某些手段伪造请求头部中的信息。而且随着浏览器操作系统的更新,以及用户使用代理服务器等情况的存在,某些用户代理信息可能会发生变化,导致检测结果不准确。因此,在进行浏览器检测时,应该综合考虑不同的因素,并灵活运用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值