阻止 HTML5 自动对焦在较小的(移动)屏幕上显示软键盘

Prevent HTML5 autofocus from displaying soft-keyboard on smaller (mobile) screens

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

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

软键盘占用了很多 space,因此我想阻止它打开。同时,自动对焦是我们正常拍摄所需要的一个非常有用的功能screens/devices.

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

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

有什么建议吗?

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

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

和 JS

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