簡體   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