JavaScript如何检查移动/平板电脑的用户代理
我目前正在为一个客户端网站开发一些JS作品,该网站在桌面和平板电脑平台上具有不同的功能。考虑:JavaScript如何检查移动/平板电脑的用户代理,javascript,android,mobile,tablet,Javascript,Android,Mobile,Tablet,我目前正在为一个客户端网站开发一些JS作品,该网站在桌面和平板电脑平台上具有不同的功能。考虑: if(! navigator.userAgent.match(/Android/i) && ! navigator.userAgent.match(/webOS/i) && ! navigator.userAgent.match(/iPhone/i) && ! navigator.u
if(! navigator.userAgent.match(/Android/i) &&
! navigator.userAgent.match(/webOS/i) &&
! navigator.userAgent.match(/iPhone/i) &&
! navigator.userAgent.match(/iPod/i) &&
! navigator.userAgent.match(/iPad/i) &&
! navigator.userAgent.match(/Blackberry/i) )
{
// do desktop stuff
} else if ( navigator.userAgent.match(/iPad/i) )
{
// do tablet stuff
}
目前,我只检查iPad,因为检查“android”似乎有点问题,而且是一个非常宽泛的术语。有没有一种已知的方法可以使用JS区分Android平板电脑和移动设备
非常感谢,,
迈尔斯首先-改善病情
if (navigator.userAgent.match(/iPad/i))
{
// do tablet stuff
} else if(navigator.userAgent.match(/Android|webOS|iPhone|iPod|Blackberry/i) )
{
// do mobile stuff
} else {
// do desktop stuff
}
第二,添加缺少的关键字:
if (navigator.userAgent.match(/Tablet|iPad/i))
{
// do tablet stuff
} else if(navigator.userAgent.match(/Mobile|Windows Phone|Lumia|Android|webOS|iPhone|iPod|Blackberry|PlayBook|BB10|Opera Mini|\bCrMo\/|Opera Mobi/i) )
{
// do mobile stuff
} else {
// do desktop stuff
}
第三,这是我使用的实际检测脚本:
if (navigator.userAgent.match(/Tablet|iPad/i))
{
// do tablet stuff
} else if(navigator.userAgent.match(/Mobile|Windows Phone|Lumia|Android|webOS|iPhone|iPod|Blackberry|PlayBook|BB10|Opera Mini|\bCrMo\/|Opera Mobi/i) )
{
// do mobile stuff
} else {
// do desktop stuff
}
编辑:
if (navigator.userAgent.match(/Tablet|iPad/i))
{
// do tablet stuff
} else if(navigator.userAgent.match(/Mobile|Windows Phone|Lumia|Android|webOS|iPhone|iPod|Blackberry|PlayBook|BB10|Opera Mini|\bCrMo\/|Opera Mobi/i) )
{
// do mobile stuff
} else {
// do desktop stuff
}
请注意,平板电脑和iPad同时被视为移动设备
和平板电脑
。
请注意,有些笔记本电脑同时具有触摸屏、鼠标和键盘。换句话说,一个好的程序员并不依赖于触摸,相反,它在任何情况下都支持所有三种输入法。您可以使用以下步骤
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());
}
};
if (isMobile.any()) {
window.location = "#";
}
因此,根据对这个问题的评论:UA中有许多平板电脑都包含“手机”。有没有办法绕过这个问题?这仍然准确吗?我必须从列表中删除
Mobile
,才能与iPad不匹配。Thanks@MarioParra平板电脑和iPad都是移动设备
和平板电脑
。。。所以你的意思是。。。“你需要一个折扣仔细检查一下”?在分为平板电脑(起初可能只有iPad)、手机和台式电脑之后,我会(在做事情之前)然后根据最大值(高度、宽度)在手机和平板电脑之间做一次“修正”尝试。(是的,仍然是烟雾测试/决定……但是)