8

少しコンテキスト:setSelectionRangeのバグが原因でAndroidで機能しなくなるオートコンプリート機能を備えたHTML5ベースのモバイルアプリに取り組んでいます:http://code.google.com/p/android/issues/detail? id = 15245このため、通常のようにテキストフィールドのテキストを直接操作することはできません。この問題を回避するために、Androidソフトキーボードでユーザーがキーを押すのをシミュレートするために、いくつかのキーイベントを手動で発生させることを計画していました。

私が見つけたすべての解決策は、プログラムでキー押下イベントをシミュレートすることは可能ですか?JavaScriptでキーボードイベントを発生させると、実際にテキスト入力を作成せずにイベントを発生させるだけです。

javascriptを使用して、テキスト入力を含むkeypressイベント全体をシミュレートする方法はありますか?

更新:修正済み(一種)

この問題を回避するには、ネイティブレベルでAndroidキーボードイベントを手動で発生させるTrigger(使用しているラッパー)のプラグインを作成します。ここでホストされています:http://bit.ly/RiJqrM他の誰かが興味を持っている場合。

さらに別の更新:

さらなる欲求不満とその後のテストは私を完全に一周させました、そしてそれは上記のアンドロイドバグが少し赤いニシンであったかもしれないことがわかりました。私のキャレットが奇妙に動作した理由は、実際には、ネイティブandroidオートコンプリートの組み合わせと、jQuery focus()がandroid(恥知らずな自己宣伝)でまったく機能しないという事実が原因である可能性があります:Android JQuery focus()回避策

4

1 に答える 1

3

いいえ。ほとんどのブラウザでは、スクリプトでキー押下を完全にシミュレートすることはできません。イベントを発生させることはできますが、関連するブラウザの動作(入力値の更新、contenteditable要素のコンテンツの編集、キャレットの移動など)は発生しません。 。

于 2012-10-24T22:47:40.083 に答える