使用js实现移动设备访问跳转到指定目录

最近最项目的时候总会同时做pc站点跟手机站点,当手机访问的时候默认是看到pc站点的,需要在url上加上/mobile才能正常访问,这段代码是我同事分享给我的,还是蛮实用的.

CODE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function ckMobile() {
    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应该程序,没有头部与底部           
            };
        } ()
    }
 
    if (browser.versions.mobile || browser.versions.iPhone) {
        if (!browser.versions.iPad || (document.body.clientWidth < 450)) {
            return true;
        }
    }
}
 
 
function ckGoogleBrowser() {
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    var s;
    (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
    (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
    (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
    (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
    (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
    if (Sys.chrome != null || Sys.opera != null || Sys.firefox != null) { return true; }
    
}
 
 
function CheckBrowser() {
    if (!ckGoogleBrowser()) {
        if (ckMobile()) {
            location.href = "/mobile/";
        }
    }
}
 
 
CheckBrowser();

  

备注:在站点起始页引用即可.

posted @   陈大欠  阅读(883)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示