【问题标题】:How to focus an input field only when on a desktop browser如何仅在桌面浏览器上聚焦输入字段
【发布时间】:2013-03-23 20:24:32
【问题描述】:

当用户使用桌面浏览器时,聚焦输入字段的最佳方式是什么?

我使用 jQuery 并设置焦点是这样完成的:

$(document).ready(function(){
    $("input").focus();
}

但现在在移动设备(例如手机和平板电脑)上,屏幕键盘会出现。我想避免这种情况。我还想避免浏览器嗅探。有什么想法吗?

PS:获取浏览器视口不是解决方案。

【问题讨论】:

  • 您实际上无法获得屏幕分辨率,但您可以获得浏览器窗口的高度和宽度(这也可以通过调整浏览器大小来改变)
  • @MohammadAdil 改写了它。

标签: javascript jquery mobile browser focus


【解决方案1】:

您可以通过检查 UserAgent 仅使用 javascript 来执行此操作,如下所示:

$(document).ready(function(){
   if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
      //mobile code
   } else {
      //desktop code
      $("input").focus();
   }
}

【讨论】:

  • 忘了说我想避免浏览器嗅探。
【解决方案2】:

我会尝试在服务器端设置一个标志。 IE 将一个类添加到您的父 div 'isDesktop' 然后在客户端,像这样检查它

 $(document).ready(function(){
     if($('.myParentDiv').hasClass('isDesktop')){
       $("input").focus();
}
    }

如果您无权访问服务器端,另一种方法可能是使用用户 jquery 的$.browser,它会为您提供有关浏览器的信息。

【讨论】:

  • 是的,这很容易。但困难的部分是识别浏览器,而我想避免任何类型的浏览器嗅探。
  • jQuery.browser 已被弃用。正如我所说,我想避免浏览器嗅探。
猜你喜欢
  • 2012-02-10
  • 2019-02-11
  • 2018-03-21
  • 2013-04-08
  • 1970-01-01
  • 2019-03-31
  • 2021-02-25
  • 2016-01-04
  • 2011-02-27
相关资源
最近更新 更多