私はいくつかの自動補完コードを扱っています。 setSelectionRange()
は、oninput
イベントハンドラで完了したテキストを選択するために使用されます。少なくともFirefox 14では動作しますが、Chromeでは動作しません(6,17)。私はクロームでコードをデバッグし、そしてそれがsetSelectionRange()
が実行された後のテキストが最初の右で選択されていることが判明しクロムsetSelectionRange()は、入力ハンドラでは機能しません
<input type='text' oninput='select()' />
function select(e){
var s = this.value;
if (s.length)
this.setSelectionRange(s.length-1, s.length);
}
:問題を実証
簡素化されたコードスニペットは、このようなものですしかし、その選択は後で消えた。
私はこのように、onclick
代わりのoninput
にハンドラをバインドする場合:
<input type='text' onclick='select()' />
、両方のブラウザでは正常に動作。
誰でもChromeで選択作業を行うためのヒントを教えてください。
それはあなたが ')setSelectionRange(への呼び出しの前に)(' this.focusを呼び出すために必要なことだったかもしれません。ここの例を参照してください。https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#Example –