前面給大家講了《PHP判斷判訪問設備是手機移動端還是PC電腦端》的實例,但是很多朋友是靜態頁面使用起來不是太方便,下面361源碼就再給大家講一種方法來判斷UA,JS代碼判斷客戶端是手機訪問還是PC電腦訪問。
JS代碼判斷客戶端是手機訪問還是PC電腦訪問這種方法,可以說是萬能的,無論是靜態頁面還是動態頁面,PHP的還是ASP的還是.NET的都是可以很好的實現完美的需求,閑話收底,下面給大家寫2種JS的方法,總一個款適合你的!
第一種方法:
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"; document.writeln("您的瀏覽設備為:"); if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) { alert("移動"); } else { alert("pc"); } }
第二種方法:
var browser={ versions:function(){ var u = navigator.userAgent; var 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.*/), //是否為移動終端 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 , //是否為iPhone或者QQHD瀏覽器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1 //是否web應該程序,沒有頭部與底部 }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() } if(browser.versions.mobile || browser.versions.ios || browser.versions.android || browser.versions.iPhone || browser.versions.iPad){ if(/pc/.html/i.test(window.location.href)){ window.location = "phone.html"; }}else if(/phone/.html/i.test(window.location.href)){ window.location = "pc.html";}
總結一下:
上面2種方法都能夠判斷UA屬性,根據自己的需求可以實現不同的跳轉什么的。
下面給小白們寫個實例,方便小白拿來就用:
下面是361源碼網自己使用的一套代碼,也是百度的UA判斷代碼,比較好用。下面是uaredirect.js文件,可以復制下面的直接使用
function uaredirect(f) { try { if (document.getElementById("bdmark") != null) { return } var b = false; if (arguments[1]) { var e = window.location.host; var a = window.location.href; if (isSubdomain(arguments[1], e) == 1) { f = f + "/#m/" + a; b = true } else { if (isSubdomain(arguments[1], e) == 2) { f = f + "/#m/" + a; b = true } else { f = a; b = false } } } else { b = true } if (b) { var c = window.location.hash; if (!c.match("fromapp")) { if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))) { location.replace(f) } } } } catch(d) {}}function isSubdomain(c, d) { this.getdomain = function(f) { var e = f.indexOf("://"); if (e > 0) { var h = f.substr(e + 3) } else { var h = f } var g = /^www./; if (g.test(h)) { h = h.substr(4) } return h }; if (c == d) { return 1 } else { var c = this.getdomain(c); var b = this.getdomain(d); if (c == b) { return 1 } else { c = c.replace(".", "/."); var a = new RegExp("/." + c + "$"); if (b.match(a)) { return 2 } else { return 0 } } }};
使用方法:
<SCRIPT type=text/javascript>uaredirect("手機站","WEB站");</SCRIPT>
如下圖
新聞熱點
疑難解答