Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以通过javascript(无phonegap)触发Android软键盘打开吗?_Javascript_Android_Galaxy - Fatal编程技术网

我可以通过javascript(无phonegap)触发Android软键盘打开吗?

我可以通过javascript(无phonegap)触发Android软键盘打开吗?,javascript,android,galaxy,Javascript,Android,Galaxy,我的移动web应用程序中有一些自定义的web组件,而我需要在一个字段上手动触发“聚焦”事件,以模拟Android软键盘功能中的“下一步”功能。(使用Galaxy S3本机浏览器) 但是,当我在“选择”字段上手动触发焦点事件时,本机软键盘不会显示。我随后必须单击该字段以使其显示。(当然,在IOS中,它工作得很好) 所以我想知道,如果“焦点”事件没有触发软键盘打开,那么JS事件会是什么呢 我没有使用phonegap,所以我希望有一种没有它的方法 谢谢你的帮助 这里是StackOverflow的链接:

我的移动web应用程序中有一些自定义的web组件,而我需要在一个字段上手动触发“聚焦”事件,以模拟Android软键盘功能中的“下一步”功能。(使用Galaxy S3本机浏览器)

但是,当我在“选择”字段上手动触发焦点事件时,本机软键盘不会显示。我随后必须单击该字段以使其显示。(当然,在IOS中,它工作得很好)

所以我想知道,如果“焦点”事件没有触发软键盘打开,那么JS事件会是什么呢

我没有使用phonegap,所以我希望有一种没有它的方法


谢谢你的帮助

这里是StackOverflow的链接:

仅仅专注而不关注事件似乎是行不通的你真的需要一个 单击触发此事件的事件


您可以通过调用
focus()
然后在输入上单击()。不需要jquery。如果脚本是由包含元素上的onclick()触发的,请注意无休止的循环。还要确保此脚本是由某些用户交互触发的。无法从document.onload()或setTimeout()执行此操作。它也很脆弱,比如在元素上同时改变样式。下面的脚本为我在Chrome for android 58和Safari mobile 602.1上工作

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

if (event.target != target) {
    target.focus();
    target.click();
}
香草JS解决方案:

let button=document.getElementById(“b”);
让输入=document.getElementById(“i”);
//当聚焦来自单击侦听器的输入时,键盘打开
按钮。addEventListener(“单击”,()=>{
input.focus();
});
//输入字段获得焦点,但键盘未打开。
设置超时(()=>{
input.focus();
}, 1000);

谢谢。我使用纯javascript而不是jquery,但这个概念起了作用:)有没有可能在没有真正点击的情况下显示键盘?我试图隐藏按钮并单击ProgramMaticali,但也没有成功:也尝试了不使用按钮,通过触发点击输入…。。。@alex.mironov:检查这个。只要它是通过单击(从不同的按钮等)启动的,它就可以工作。如果它是由其他事件触发的,例如setTimeout()或其他随机事件,则它不起作用
var target = document.getElementsByTagName("input")[0];

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