【发布时间】:2013-12-30 11:32:11
【问题描述】:
情况是这样的: 我需要让 JQuery 对我的应用程序做出响应,例如让 Google 地图可拖动:在 pc 上为真,在平板电脑和手机上为假,我第一次面对这个论点。 我正在做一些测试。
这就是我们所做的: 我尝试研究处理它的最佳方法,而最好的方法(即正常工作)似乎可以在这个 SO 答案中找到:
What is the best way to detect a mobile device in jQuery?
具体来说,这是代码:
var isMobile = navigator.userAgent.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/);
if (isMobile) {
alert('is not pc');
}
else {
alert('is a pc');
}
这是一个简单的测试:
http://jsbin.com/IroMAQi/1/edit
建立的其他解决方案: 发现这种方法也很有趣:
Do something if screen width is less than 960 px
但很奇怪,我的平板电脑 Samsung Galaxy Tab 3 的第一个解决方案不起作用。
这是问题:
让 JQuery 响应的最好方法是检测 navigator.userAgent.match?
如果是,我如何确保在列表中包含所有可能的设备? 例如,我知道最近刚刚发布了新的 Firefox 手机,我怎样才能包含该设备?或许有一种包含所有不同可能性的列表?
非常感谢!! 对不起,如果这是一个愚蠢的问题,我是否知道这一点,此时只有 Stack Overflow 可以为我澄清这一点!
【问题讨论】:
-
你研究过 CSS 媒体查询吗?和Modernizr?您应该检测功能而不是设备。
-
您使用的正则表达式不应该有
i标志吗? “我怎样才能确保在列表中包括所有可能的设备?” - 根据定义,您不能包括 所有可能的 设备,因为创建浏览器的人(对于桌面或移动设备)可能会在他们的脑海中做出各种奇怪的事情。我们不知道未来会发生什么...... -
如果您在服务器端使用 PHP,您可以考虑使用 MobileDetect 类。
标签: javascript android jquery ios responsive-design