私はいくつかのオートコンプリートコードを扱っています。イベントハンドラsetSelectionRange()
で完了したテキストを選択するために使用されます。oninput
少なくとも Firefox 14 では動作しますが、Chrome(6、17) では動作しません。
問題を示す単純化されたコード スニペットは次のようになります。
<input type='text' oninput='select()' />
function select(e){
var s = this.value;
if (s.length)
this.setSelectionRange(s.length-1, s.length);
}
クロムでコードをデバッグしたところ、実行直後にテキストが選択されていたことがわかりましたsetSelectionRange()
が、後で選択が消えました。
onclick
次のように、ハンドラーをの代わりにバインドする場合oninput
:
<input type='text' onclick='select()' />
その後、両方のブラウザが正常に動作します。
Chromeで選択を機能させるための手がかりを教えてください。