【问题标题】:Differenciate tablet/smartphone and touch-screen computer区分平板电脑/智能手机和触摸屏电脑
【发布时间】:2014-05-05 09:37:58
【问题描述】:

我正在开发一个网站,该网站提供不同的导航,具体取决于用户是在智能手机(带触摸屏)还是在计算机上浏览。 实际上,检查是通过Modernizr.touch 完成的,但我希望触摸屏计算机能够像其他人一样工作。

有人知道如何达到这个目标吗?

【问题讨论】:

  • 如果您想检测 mobile 设备,为什么要使用 touch 标准进行检查?这两组不一样(正如您提到的触摸屏计算机的情况)。或者,可以说是非触摸式移动设备。
  • 我没有解释清楚。我想检测移动触摸屏。
  • 这与任何支持触摸的移动设备相同吗?您已经拥有启用触摸功能的检查;只需将移动设备检查添加到选择标准中即可。

标签: javascript jquery touchscreen


【解决方案1】:

试试这个:

用于检测触摸设备(包括触摸屏显示器)

var is_touch_device = 'ontouchstart' in document.documentElement;
if(is_touch_device){
   //code for touch devices
}

仅用于检测移动设备:

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
 //code for touch devices
}

【讨论】:

  • 这个问题是关于如何具体包括某些触摸设备。 OP 正在尝试区分移动/非移动,而不是触摸/非触摸。
  • @Flater:如果你仔细看,那么 OP 想要区分触摸显示器设备和普通桌面。这应该适用于所有触摸设备。
  • Actually, the check is done through Modernizr.touch but I want touch-screen computers to act like others. => 据我了解,支持触控的计算机正在注册为触控设备,而这正是 OP 试图阻止发生的事情。启用触摸的检查按预期工作,但 OP 希望根据 mobile 标准而不是 touch (或两者的组合)进行选择。无论哪种方式,要点是您不能将触摸兼容性用作所有移动设备的选择,因为支持触摸的计算机也会被标记为此类。)
  • @Flater:ooh..second 解决方案应该适用于这种情况。
  • 确实,我试图阻止触摸屏计算机像触摸屏手机一样工作。我会尝试结合触摸屏和移动检测的方式。谢谢!
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 2013-04-14
  • 2013-06-11
  • 1970-01-01
相关资源
最近更新 更多