ツール作成中。利用者の便宜を考えてtexareaをクリックしたらtextarea内の全体を選択状態にしたい場合。
textareaとかinputをクリックして「Ctrl+A」とか「Cmmand+A」とかすれば全体を選択状態にすることができる。でも、全選択するのが面倒。クリックしたら選択状態になったほうが楽。ということで、以下のようにする。
<textarea onfocus=”this.select()”/>
しかし、Safariではうまくいかない。
これはiPhone対応をやったときにもはまったポイントだった。
のちに調べてみるとiPhoneでは長押しで「すべてをコピーする」みたいなやつがあったので実際には不要だったのだけど。ということで、PC、Macなどで対応できればいいや、ということで調べる。
前に調べた対処方法では、setTimeoutで10msとかタイミングをずらしてselectの処理をする、というものだった。どこだか失念したので、今回はあらためてメモ。
ここにあった。
トラックバックURLをコピーしやすく – 万年床生活者の備忘録
解決策として、以下のように変更すればWindows・Macを問わずほぼ全てのブラウザでトラックバックURLの一発選択が可能になるとの事です。
ということで、こういうやつ。
<textarea onclick=”this.focus(); this.select()” />
たしかにうまくいく。しかもシンプル! 例によってWindows版のSafariだけでテスト。Mac版はわかんないんだけど、上記エントリーの人が試してOKだったらしいのでこれでいくことに。ありがとうございます。
コメント