View Single Post
  #1   IP: 49.87.50.93
Old 2016-03-25, 02:26 PM
Hagan Hagan is offline
初级会员
 
Join Date: 2006-04-04
Posts: 2
Hagan 现在声名狼藉
Default js判断手机访问跳转到手机站

4G网的降临,移动网站已经是普遍再普遍的现象了,pc端和移动端官网并存。如何让别人访问你的pc端的官网直接跳转到移动端的网站呢?
以下是我整理的一些方法,希望对大家有所帮助:

1. 第一种方法:

<script>

if(navigator.platform.indexOf('Win32')!=-1){

//pc

//window.location.href="电脑网址";

}else{

//shouji

window.location.href="手机网址";

}

</script>


2. 第二种方法:

<script type="text/javascript">

function browserRedirect() {

var sUserAgent= navigator.userAgent.toLowerCase();

var bIsIpad= sUserAgent.match(/ipad/i) == "ipad";

var bIsIphoneOs= sUserAgent.match(/iphone os/i) == "iphone os";

var bIsMidp= sUserAgent.match(/midp/i) == "midp";

var bIsUc7= sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";

var bIsUc= sUserAgent.match(/ucweb/i) == "ucweb";

var bIsAndroid= sUserAgent.match(/android/i) == "android";

var bIsCE= sUserAgent.match(/windows ce/i) == "windows ce";

var bIsWM= sUserAgent.match(/windows mobile/i) == "windows mobile";

if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {

window.location.href= '手机网站地址';

} else {

window.location= '电脑网站地址';

}

}

browserRedirect();

</script>


3. 第三种方法:

<script type="text/javascript">

var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");

var browser = navigator.userAgent.toLowerCase();

var isMobile = false;

for (var i=0; i<mobileAgent.length; i++){ if (browser.indexOf(mobileAgent[i])!=-1){ isMobile = true;

//alert(mobileAgent[i]);

location.href = '手机网址';

break; } }

</script>



4. 第四种方法:

<?php

////这段放手机站里

header("Cache-Control: no-cache");

header("Pragma: no-cache");

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);

$uachar = "/(symbianos|android|Mac OS|ucweb|blackberry)/i";

if($ua != '' && !preg_match($uachar, $ua)){

echo 'window.location.href="电脑地址";';

exit();

}

?>

<?php

//这段放在网站里

header("Cache-Control: no-cache");

header("Pragma: no-cache");

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);

$uachar = "/(symbianos|android|Mac OS|ucweb|blackberry)/i";

if($ua != '' && preg_match($uachar, $ua)){

echo 'window.location.href="手机地址";';

exit();

}

?>



5. 第五种方法:

<?php

function UserAgent(){

$user_agent = ( !isset($_SERVER['HTTP_USER_AGENT'])) ? FALSE : $_SERVER['HTTP_USER_AGENT'];

return $user_agent;

}

//Mobile

if ((preg_match("/(iphone|ipod|android)/i", strtolower(UserAgent()))) AND strstr(strtolower(UserAgent()), 'webkit')){

header('Location: 手机网址');

exit;

}else if(trim(UserAgent()) == '' OR preg_match("/(nokia|sony|ericsson|mot|htc|samsung|sgh|lg|philips|lenovo|ucweb|opera mobi|windows mobile|blackberry)/i", strtolower(UserAgent()))){

header('Location: 手机网址');

exit;

}else{//PC

header("Location: 电脑网址");

}

?>



6. 第六种方法:也可以把名为uaredirect的文件下载到自己网站上引入;



(说明:把uaredirect放在百度中搜下就出现文件具体地址了)


7.第七种方法(医院里面的网站经常用):
/*手机跳转代码*/
var _speedMark = new Date();
(function(){
var res = GetRequest();
var par = res['index'];
if(par!='gfan'){
var ua=navigator.userAgent.toLowerCase();
var contains=function (a, b){
if(a.indexOf(b)!=-1){return true;}
};
var toMobileVertion = function(){
window.location.href = '手机端网址'
}

if(contains(ua,"ipad")||(contains(ua,"rv:1.2.3.4"))||(contains(ua,"0.0.0.0"))||(contains(ua,"8.0.552.237"))){return false}
if((contains(ua,"android") && contains(ua,"mobile"))||(contains(ua,"android") && contains(ua,"mozilla")) ||(contains(ua,"android") && contains(ua,"opera"))
||contains(ua,"ucweb7")||contains(ua,"iphone")){toMobileVertion();}
}
})();
function GetRequest() {
var url = location.search;
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}

注意:当需要独立一个出来跳转不一样的手机端网页是:此时用这段跳转代码,优先级高;

/**电脑专题跳转js**/
var mobileAgents = ['Windows CE', 'iPod', 'Symbian', 'iPhone', 'BlackBerry', 'Android'];
var sUserAgent = navigator.userAgent;
for (var i = 0; i < mobileAgents.length; i++) {
if (sUserAgent.indexOf(mobileAgents[i]) > -1) {
location = '手机端链接';
break;
}
}

并且转告大家,最好用百度提供的跳转代码,这样对网站打开速度影响也比较小;
Reply With Quote