« SafariでブックマークレットでDOMに出力すると文字化け | トップページ | z-indexを無視してFlashが上に重なってしまうのに対処 »

2011年3月28日 (月曜日)

Safariでtextareaを選択状態にできない

 ツール作成中。利用者の便宜を考えて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だったらしいのでこれでいくことに。ありがとうございます。


|

« SafariでブックマークレットでDOMに出力すると文字化け | トップページ | z-indexを無視してFlashが上に重なってしまうのに対処 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/51237446

この記事へのトラックバック一覧です: Safariでtextareaを選択状態にできない:

« SafariでブックマークレットでDOMに出力すると文字化け | トップページ | z-indexを無視してFlashが上に重なってしまうのに対処 »