Javascript判断智能手机浏览器

  参考: http://www.cnblogs.com/phphuaibei/archive/2011/12/09/2282570.html

  

var browser = {
	versions : function () {
		var u = navigator.userAgent,
		app = navigator.appVersion;
		return {
			trident : u.indexOf('Trident') > -1, //IE内核
			presto : u.indexOf('Presto') > -1, //opera内核
			webKit : u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
			gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
			mobile : !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
			ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
			android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
			iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
			iPad : u.indexOf('iPad') > -1, //是否iPad
			webApp : u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
			linux : u.indexOf('linux') > -1, //加mobile和这个属性一起,可以判断uc浏览器
			wp7 : (u.indexOf('WP7') > -1) || (u.indexOf('Windows Phone OS') > -1) //trident IE内核 并且包含WP7标示 windows phone7手机
		};
	}(),
	language : (navigator.browserLanguage || navigator.language).toLowerCase()
};
document.write("language: " + browser.language + '</br>');
document.write("android: " + (browser.versions.mobile && browser.versions.android) + '</br>');
document.write("iPhone: " + (browser.versions.mobile && browser.versions.iPhone) + '</br>');
document.write("iPad: " + (browser.versions.mobile && browser.versions.iPad) + '</br>');
document.write("Wp7: " + (browser.versions.trident && browser.versions.wp7) + '</br>');
document.write(navigator.userAgent);

 

  1. 对于第三方浏览器,比如百度,QQ,UC等这一类的,很多都比较奇葩。我测试了UC浏览器在windows phone 7上不同机型的值,UserAgent差异很大。

  2. 另一方面,windows phone 7在设置中可以设置浏览器的模式,存在Desktop和Mobile两种模式,这2种模式存在不同的UserAgent,需要特别注意。

posted @ 2012-05-16 13:28  wjn2010  阅读(575)  评论(0编辑  收藏  举报