1

如果从移动设备直接访问该站点,我制作了一个脚本,该脚本应该将移动用户重定向到另一个域。但是,如果用户是从该域被推荐的,他们应该留在页面上(“查看主站点”)。

这样做而不是服务器端语言的原因是因为我无权访问服务器端文件,但他们已同意放入 javascript 包含。

此代码在 ios 和 windows 移动设备上运行良好,但不适用于 android。

有任何想法吗?

var referrer = 'http://m.example.com/'; // The referring url
var isMobile={
    Android:function(){
        return navigator.userAgent.match(/Android/i)
    },
    BlackBerry:function(){
        return navigator.userAgent.match(/BlackBerry/i)
    },
    iOS:function(){
        return navigator.userAgent.match(/iPhone|iPad|iPod/i)
    },
    Opera:function(){
        return navigator.userAgent.match(/Opera Mini/i)
    },
    Windows:function(){
        return navigator.userAgent.match(/IEMobile/i)
    },
    any:function(){
        return(isMobile.Android()||isMobile.BlackBerry()||isMobile.iOS()||isMobile.Opera()||isMobile.Windows())
    }
}

window.onload=function(){
    var url=referrer;
    if(document.referrer.toString()===url){// If the referrer is the same as the url set the cookie
        document.cookie="mobile=1";
    }
    var coo=new Array();
    coo=document.cookie.split(';');
    var stay=0;
    if(isMobile.any()){
        for(i in coo){
            var cookie=coo[i].split('=');
            if(cookie[0].valueOf()==="mobile"){
                stay=1;
            }
        }
        if(stay===0){
            window.location=url;// if the cookie hasn't been set redirect to the referring url
        }
    }
}
4

0 回答 0