【问题标题】:Prevent HTML5 autofocus from displaying soft-keyboard on smaller (mobile) screens防止 HTML5 自动对焦在较小的(移动)屏幕上显示软键盘
【发布时间】:2015-06-18 22:00:25
【问题描述】:

使用 HTML5 属性“自动对焦”对于网页来说非常有用。但是,在 Android 设备上使用 - 例如 - Firefox (37.0.1) 会导致在页面加载时显示软键盘。

<input type="text" name="q" autofocus>

软键盘占用了大量空间,因此我想阻止它打开。同时,自动对焦是我们在普通屏幕/设备上所需要的一项非常有用的功能。

我尝试在页面加载时通过 jQuery 删除基于屏幕宽度的“自动对焦”属性,但是为时已晚。此时,浏览器显然已经接受了该属性并显示了软键盘:

$(function(){
    if (window.innerWidth < 600)
        $('*[autofocus]').removeAttr('autofocus');
});

有什么建议吗?

【问题讨论】:

  • 嗯,autofocus 在做什么?它可以以某种方式复制吗?
  • 我可以用 JS/jQuery 复制它,但那不是很优雅。但这是我心中的一个选择。

标签: html mobile autofocus soft-keyboard


【解决方案1】:

试试这个,它可以在桌面上运行,我还没有在移动设备上测试过。删除属性autofocus

<input type="text" name="q">

和 JS

function setFocus() {
    if (window.innerWidth > 600)
        $("input[name=q]").focus();
}
$(document).ready(function() {
    setFocus();
});

【讨论】:

  • 这确实有效,但我不想对标记本身进行更改。除非出现其他解决方案,否则我稍后会将其标记为已接受。
  • 效果很好。但是,我认为最好检查 windows 对象中的“ontouchstart”事件而不是 windows 宽度。那是因为分辨率增长得非常快,而且三星 S6 的分辨率已经比我的 27 英寸屏幕大:-P
猜你喜欢
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多