如何通过javascript或jquery将输入字段集中在Android浏览器上

如何通过javascript或jquery将输入字段集中在Android浏览器上,javascript,jquery,android,browser,focus,Javascript,Jquery,Android,Browser,Focus,我尝试了$('#field').focus(),以及在internet上找到的任何其他方法。什么都没用。我有一个简单的html来重现这个问题 <!DOCTYPE html> <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script&

我尝试了
$('#field').focus()
,以及在internet上找到的任何其他方法。什么都没用。我有一个简单的html来重现这个问题

<!DOCTYPE html> 
<html> 
    <head> 
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#field').focus();
            });
    </script>
</head> 
<body>
    <input type="text" id="field" name="field"/>
</body>
</html>

$(文档).ready(函数(){
$(“#字段”).focus();
});

请帮忙

实际上,android浏览器中的通用javascript函数“focus”已被禁用。因此,jQuery focus函数将被停用,因为它正在使用上述功能。

如果将其绑定到另一个单击事件,它将工作。这对我很有用:

    $(document).ready(function()
    {

       $('#field').click(function(e){ $(this).focus(); });

            $('body').click(function(e)
            {
                $('#field').trigger('click');
            })
    })   
将弹出软件键盘。trigger()将触发您给定的任何事件。在这种情况下,单击字段==tap==focus==win!注意:此调用绑定到另一个正在发生的单击事件

click()
focus()
单独是不够的。您需要
focus()
然后
单击()。如果脚本是由包含元素上的onclick()触发的,请注意无休止的循环。下面的脚本为我在Chrome for android 58和Safari mobile 602.1上工作。软键盘弹出很好

var target = document.getElementsByTagName("input")[0];

if (event.target != target) {
    target.focus();
    target.click();
}

这没有理由不起作用,除非您使用的是jQuery Mobile。jQuery Mobile改变了DOM的生命周期,这与您通常期望的不同。我没有使用jQuery Mobile,只使用普通的jQuery。看看这个例子。当你按下建议上的箭头时,我在谷歌的搜索页面上看到了这一点。但是他们最小化了js,我不明白这是怎么做到的。您是否尝试过将
#focus()
方法调用放在浏览器事件回调中,以查看fi ti是否以这种方式工作?我不知道;我不明白为什么安卓版本的WebKit会以这种方式偏离chrome版本。。。有一个不会偏离预期行为的情况可能会有所帮助,以便理解它偏离预期行为的情况。或者,您是否尝试过将调用包装在匿名函数中,以便在对
document.ready()的调用中执行?例如:
$(document).ready(函数(){(函数(){$('#字段').focus();});})偶尔在匿名函数中包装一个操作以立即执行,可以解决随机的无法解释的JS问题。您可以链接有关此问题的更多信息源或解决方法吗?