JS判断mobile和pc

本文介绍了一种使用JavaScript来判断用户是通过移动设备还是PC访问网站的方法,并根据不同的访问方式跳转到相应的页面。


PC版:
var browser = {
       versions : function() {
        var u = navigator.userAgent, app = navigator.appVersion;
        return {//移动终端浏览器版本信息                                                             
       mobile : (!!u.match(/AppleWebKit.*Mobile/) || !!u.match(/Windows Phone/) || !!u.match(/Android/) || !!u.match(/MQQBrowser/)) && !u.match(/iPad/)//是否为移动终端                                
       };
       }()
       }
        if(!browser.versions.mobile){
              alert( "pc or pad");
       } else{
           window.location.href= "http://localhost:8090/m";
       }
Mobile版:
var browser = {
       versions : function() {
        var u = navigator.userAgent, app = navigator.appVersion;
        return {//移动终端浏览器版本信息                                                             
       mobile : (!!u.match(/AppleWebKit.*Mobile/) || !!u.match(/Windows Phone/) || !!u.match(/Android/) || !!u.match(/MQQBrowser/)) && !u.match(/iPad/)//是否为移动终端                                
       };
       }()
       }
        if(browser.versions.mobile){
              alert( "phone");
       } else{
           window.location.href= "http://localhost:8080";
       }
PC版:
var browser = {
       versions :  function() {
         var u = navigator.userAgent, app = navigator.appVersion;
         return { //移动终端浏览器版本信息                                                             
       mobile : (!!u.match(/AppleWebKit.*Mobile/) || !!u.match(/Windows Phone/) || !!u.match(/Android/) || !!u.match(/MQQBrowser/)) && !u.match(/iPad/) //是否为移动终端                                
       };
       }()
       }
         if(!browser.versions.mobile){
              alert(  "pc or pad");
       }  else{
           window.location.href=  "http://localhost:8090/m";
       }
Mobile版:
var browser = {
       versions :  function() {
         var u = navigator.userAgent, app = navigator.appVersion;
         return { //移动终端浏览器版本信息                                                             
       mobile : (!!u.match(/AppleWebKit.*Mobile/) || !!u.match(/Windows Phone/) || !!u.match(/Android/) || !!u.match(/MQQBrowser/)) && !u.match(/iPad/) //是否为移动终端                                
       };
       }()
       }
         if(browser.versions.mobile){
              alert(  "phone");
       }  else{
           window.location.href=  "http://localhost:8080";
       }
### 使用 JavaScript 判断设备类型(PCMobile) 在现代 Web 开发中,检测用户的设备类型是一项常见的需求。以下是几种基于 JavaScript 的方法来实现 PC 移动端的区分。 #### 方法一:通过 `navigator.userAgent` 进行匹配 可以通过分析 `navigator.userAgent` 字符串中的关键字来识别设备类型。以下是一个简单的例子: ```javascript function isMobileDevice() { const userAgent = navigator.userAgent || navigator.vendor || window.opera; const mobileKeywords = [ 'Android', 'webOS', 'iPhone', 'iPad', 'iPod', 'BlackBerry', 'IEMobile', 'Opera Mini', 'Mobile' ]; return mobileKeywords.some(keyword => userAgent.includes(keyword)); } if (isMobileDevice()) { console.log("This is a mobile device."); } else { console.log("This is a PC."); } ``` 这种方法依赖于用户代理字符串中存在的特定关键词[^2]。然而需要注意的是,某些情况下用户可能修改其 User-Agent 值,这可能导致误判。 #### 方法二:利用屏幕尺寸作为辅助判断依据 除了检查 `User-Agent` 外,还可以结合屏幕宽度进一步确认设备类别: ```javascript function detectDeviceType() { if (/Mobi|Android/i.test(navigator.userAgent)) { return "Mobile"; } // 如果未找到移动设备特征,则继续检查屏幕大小 if (window.screen.width < 768) { return "Small Screen Device"; } return "Desktop"; } console.log(`Detected as: ${detectDeviceType()}`); ``` 此代码片段不仅考虑了典型的移动设备标志词,还加入了对较小分辨率的支持[^3]。不过单独依靠屏幕尺寸可能会错误地标记一些大屏平板电脑为桌面端。 #### 方法三:借助第三方库增强准确性 为了获得更精确的结果并减少维护成本,可以采用成熟的解决方案如 **mobile-detect.js** 库。这是一个轻量级工具包专门用于探测各种手持装置及其操作系统版本号等细节信息。 安装方式: ```bash npm install mobile-detect ``` 实际应用如下所示: ```javascript import MobileDetect from 'mobile-detect'; const md = new MobileDetect(window.navigator.userAgent); if (md.mobile()) { console.log('A mobile phone was detected.'); } if (md.tablet()) { console.log('A tablet was detected.'); } if (!md.mobile() && !md.tablet()) { console.log('Probably running on Desktop'); } ``` 该方案提供了更为丰富的功能集以及更好的兼容性可靠性[^1]。 --- ### 总结 以上介绍了三种不同的技术路线来进行基本的客户端环境感知操作——从基础的手动解析到高级别的自动化框架集成都有涉及。开发者应根据项目具体场景选取最合适的策略组合起来使用以达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值