如何通过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问题。您可以链接有关此问题的更多信息源或解决方法吗?