移动端浏览器判断与微信浏览器检测脚本示例
"移动端手机浏览器判断与微信浏览器识别的关键在于识别用户代理字符串(User-Agent)中的特定特征。在给出的JavaScript代码片段中,开发者通过`navigator.userAgent`和`navigator.appVersion`来获取浏览器的相关信息。以下是一些关键知识点的详细解释: 1. **浏览器版本检测**: - `trident`: 判断是否为IE浏览器,通过查找'Trident'字符串。 - `presto`: 检查是否是Opera浏览器,查看'Presto'的存在。 - `webKit`: 检查是否为WebKit核心的浏览器,如Safari、Chrome等,查找'AppleWebKit'。 - `gecko`: 判断是否为Firefox或Mozilla系浏览器,查找'Gecko'并排除KHTML。 - `mobile`: 判断是否为移动设备上的浏览器,通过匹配特定模式,如包含'Mobile'或者仅匹配AppleWebKit且不包括QIHU和Chrome。 2. **操作系统识别**: - `ios`: 判定是否为iOS设备,通过检测字符串`\(i[^;]+;(U;)?CPU.+MacOSX`。 - `android`: 判定是否为Android设备,通过检查'Android'或'Linux'字符串。 3. **特定设备类型**: - `iPhone`: 检测是否为iPhone,包括MacOS系统上的模拟器。 - `iPad`: 判定是否为iPad,直接查找'iPad'字符串。 4. **Web应用检测**: - `webApp`: 检查是否在桌面版Safari中打开,通过检查'Safari'是否不在URL中。 5. **页面行为**: - 如果检测到是移动设备且不是iPad,代码会重定向到百度网站。 - 通过`document.writeln()`语句,输出浏览器语言和判断结果,便于开发者监控或调试。 这段代码展示了如何在客户端环境中执行浏览器检测,以便针对不同浏览器和设备提供定制化的功能。在实际项目中,这样的技术常用于适应性网页设计(Responsive Design)、广告优化、API调用或特定功能的启用。同时,随着新的浏览器和设备出现,开发者可能需要不断更新这部分代码,以保持兼容性和用户体验。
/*
* 智能机浏览器版本信息:
*
*/
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/) && u.indexOf('QIHU') && u.indexOf('Chrome') < 0, //是否为移动终端
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应用程序,没有头部与底部
ua: u
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.mobile && !browser.versions.iPad) {
this.location = "http://www.baidu.com";
}
document.writeln("语言版本: "+browser.language);
document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展