Web_JavaScript_检测访问设备,以实现移动设备访问时跳转到移动站点;
->检测脚本
var client = function(){
var system = {
win: false,
mac: false,
iphone: false,
ipod: false,
ipad: false,
ios: false,
android: false,
nokiaN: false,
winMobile: false
};
var ua = navigator.userAgent;
var p = navigator.platform;
system.win = p.indexOf("Win") == 0;
system.mac = p.indexOf("Mac") == 0;
if (system.win){
if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)){
if (RegExp["$1"] == "NT"){
switch(RegExp["$2"]){
case "5.0":
system.win = "2000";
break;
case "5.1":
system.win = "XP";
break;
case "6.0":
system.win = "Vista";
break;
case "6.1":
system.win = "7";
break;
default:
system.win = "NT";
break;
}
} else if (RegExp["$1"] == "9x"){
system.win = "ME";
} else {
system.win = RegExp["$1"];
}
}
}
system.iphone = ua.indexOf("iPhone") > -1;
system.ipod = ua.indexOf("iPod") > -1;
system.ipad = ua.indexOf("iPad") > -1;
system.nokiaN = ua.indexOf("NokiaN") > -1;
if (system.win == "CE"){
system.winMobile = system.win;
} else if (system.win == "Ph"){
if(/Windows Phone OS (\d+.\d+)/.test(ua)){;
system.win = "Phone";
system.winMobile = parseFloat(RegExp["$1"]);
}
}
if (system.mac && ua.indexOf("Mobile") > -1){
if (/CPU (?:iPhone )?OS (\d+_\d+)/.test(ua)){
system.ios = parseFloat(RegExp.$1.replace("_", "."));
} else {
system.ios = 2;
}
}
if (/Android (\d+\.\d+)/.test(ua)){
system.android = parseFloat(RegExp.$1);
}
return {
developer: "cyb_23",
system: system
};
}();
->跳转脚本
通常来说,等页面加载完成后再检测,已经是失去先机了的!检测,就应该在最最开始之初,进行检测,而不是在用户都耐心等待加载所有页面元素后检测!<script type="text/javascript"> window.onload = function() { var c = client.system; if (c.iphone || c.ipod || c.ipad || c.nokiaN || c.winMobile != false || c.android != false || c.ios != false) { location.href = 'http://3g.yourdomain.com/'; } } </script>
->改善后版本
var url = window.location.href; var isPast = ""; if (url.indexOf("?") > -1) { var qstr = url.split("?")[1]; isPast = qstr.split("=")[1]; } if (isPast != "true") { var c = client.system; if (c.iphone || c.ipod || c.ipad || c.nokiaN || c.winMobile != false || c.android != false || c.ios != false) { location.href = 'http://www.yourdomain.com/frienddlyPage.html'; } }
->frienddlyPage.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>温馨提示</title> <style type="text/css"> div a { text-decoration:none; display:block; text-align:center; margin-top:10px; } </style> <script type="text/javascript"> var timeid; var sp; var seconds = 5; function changeSecond() { sp.innerHTML = --seconds; if(seconds == 0) { clearInterval(timeid); window.location.href = "http://4g.yourdomain.com"; } } window.onload = function() { sp = document.getElementById("second"); timeid = setInterval("changeSecond()",1000); } </script> </head> <body> <div> <a href="http://4g.<span style="font-size: 13.3333339691162px; font-family: Arial, Helvetica, sans-serif;">yourdomain</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">.com">直接跳转到手机站点</a></span> <a><span id="second">5</span>秒后自动跳转</a> <a href="http://www.yourdomain.com?p=true">还是访问电脑站</a> </div> </body> </html>