js判断是否移动设备

我想让所有进入我网站的人,如果是移动设备。则进入我的博客移动站: m.shanmao.me

具体代码如下:

[code lang=”js”]
/*
* 智能机浏览器版本信息:
*
*/

var browser={
versions:function(){
var u = navigator.userAgent, 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.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
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 || u.indexOf(‘Mac’) > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf(‘iPad’) > -1, //是否iPad
webApp: u.indexOf(‘Safari’) == -1 //是否web应该程序,没有头部与底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln("语言版本: "+browser.language);
document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
document.writeln(" android终端: "+browser.versions.android);
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
if( browser.versions.android || browser.versions.iPhone || browser.versions.iPad){
window.location.href="http://m.shanmao.me"
}else{
alert("不是移动设备");
}
[/code]

这里要注意:

browser.versions.mobile || browser.versions.ios

我原先加上了上面这两个,可是发现谷歌浏览器是支持 browser.versions.mobile的。

我的谷歌浏览器输出:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17

目测应该是后面的这个 :!!u.match(/AppleWebKit/)匹配了。

由于我没很大需求。所以没纠结,如果你要纠结。你还可以用js判断移动终端宽度大小,然后再跳转。

所以我删了这2两个。我用iphone测试。成功了。反问我的网站直接跳转到移动站点。不过现在都是跳转到首页。我可以获取当前页面URL后跳转到对应的移动站点页面!

“js判断是否移动设备”的5个回复

评论已关闭。