繁体   English   中英

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

[英]Can I trigger Android soft keyboard to open via javascript ( without phonegap )?

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

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

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

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

谢谢你的帮助!!!

这是来自 StackOverflow 的链接:

使用 javascript 对字段进行 .focus() 处理时显示 Android 的软键盘

只是在没有事件的情况下集中注意力似乎不起作用。 - 你确实需要一个点击事件来触发这个。

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

您可以通过在输入上调用focus()然后click()来做到这一点。 不需要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");
let input = document.getElementById("i");

// Keyboard opens when focusing the input from a click listener
button.addEventListener("click", () => {
  input.focus();
});

// Input field gets focus but keyboard doesn't open.
setTimeout(() => {
  input.focus();
}, 1000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM