web-dev-qa-db-ja.com

Androidソフトキーボードをトリガーして、JavaScriptで(phonegapなしで)開くことができますか?)

Androidソフトキーボード機能の[次へ]機能をシミュレートするには、フィールドで 'focus'イベントを手動で起動する必要があるのに対し、モバイルWebアプリにはいくつかのカスタムWebコンポーネントがあります。( Galaxy S3ネイティブブラウザを使用)。

ただし、「select」フィールドでフォーカスイベントを手動で起動すると、ネイティブソフトキーボードが表示されません。その後、フィールドをクリックして表示する必要があります。 (もちろん、IOSでは問題なく動作します)。

「フォーカス」イベントによってソフトキーボードが開かない場合、どのJSイベントが発生するのでしょうか。

私は電話ギャップを使用していないので、それなしで方法があることを望んでいます。

助けてくれてありがとう!!!

14
29er

StackOverflowからのリンクは次のとおりです。

フィールドがJavaScriptを使用して.focus()されている場合にAndroidのソフトキーボードを表示

イベントなしでフォーカスするだけではうまくいかないようです。 -これをトリガーするクリックイベントが必要です。

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

これを行うには、入力で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();
}
2
bbsimonbb