如果从移动设备直接访问该站点,我制作了一个脚本,该脚本应该将移动用户重定向到另一个域。但是,如果用户是从该域被推荐的,他们应该留在页面上(“查看主站点”)。
这样做而不是服务器端语言的原因是因为我无权访问服务器端文件,但他们已同意放入 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
}
}
}