[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
入力欄に "" を入れて、その間に入力のカーソルが入る、みたいな状態を作りたかった。次のようになる。
とりあえず jQuery を読み込む。別に jQuery を使わなくても input に使っている DOM が取れればなんでもいい。jQuery が簡単、というだけの話。
さらに、入力欄を作る。実行ボタンはとりあえずトリガーになるものが欲しいから入れているだけ。実際に使うとしたらショートカットボタンとかにバインドすることになりそう。
<input type="text" id="js-cursor-position-control-sample-input" /> <input type="button" id="js-cursor-position-control-sample-button" value="実行" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
JS を仕込む。やることは以下の4つ
var $button = $("#js-cursor-position-control-sample-button"); var $input = $("#js-cursor-position-control-sample-input"); $button.click(function(e){ $input.val('""'); $input.focus(); $input.get(0).setSelectionRange(1, 1); });
この記事を書いている時点ではHTMLInputElement.setSelectionRange() - Web API インターフェイス | MDN も日本語訳されてなかった。あまり使われてないのだろうか。3つの引数をとる関数である。
今回の使い方では第三引数は関係ない。第三引数は文字列の先頭/終端のどっち側から選んで選択されたかを示す。わかりやすい例では Shift キーを押したまま選択する場所を変えるとどう挙動するか、があるだろうか。
特定文字列を選択させてコピペを促したりするのに便利そうである。
ただいまコメントを受けつけておりません。