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

How to focus an input field on Android browser through javascript or jquery

本文关键字:集中 Android 浏览器 字段 输入 javascript 何通过 jquery      更新时间:2023-09-26

我尝试过$('#field').focus()和互联网上的任何其他方法。什么都没用。我有一个简单的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>

请帮忙!

实际上,android浏览器中的通用javascript函数"focus"已停用。因此,jQuery焦点函数被停用,因为它正在使用上面的函数。

如果将它绑定到另一个点击事件,它就会工作。这对我有效:

    $(document).ready(function()
    {
       $('#field').click(function(e){ $(this).focus(); });
            $('body').click(function(e)
            {
                $('#field').trigger('click');
            })
    })   

将弹出软件键盘。trigger()将触发你给它的任何事件。在这种情况下,点击字段的默认行为==tap==focus==win!注意:此调用绑定到另一个正在发生的单击事件。

click()focus()单独使用是不够的。您需要先focus(),然后click()。如果脚本是由包含元素上的onclick()触发的,请注意无休止的循环。下面的脚本适用于android 58和Safari手机602.1的Chrome浏览器。软键盘弹出得很好。

var target = document.getElementsByTagName("input")[0];
if (event.target != target) {
    target.focus();
    target.click();
}