[英]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.