クリックでテキストエリアをすべて選択する方法

onfocusイベント時に、参照しているthisオブジェクトに対してselectメソッドを実行することで、テキストエリア内の文字を選択状態にできます。

これをonclickイベントで処理すると、クリックのたびに全体が選択されてしまうため、文字の一部を選択するのが困難になってしまいます。よってonfocusで処理するようにします。

<textarea onfocus="this.select()"></textarea>

サンプル

Google Chrome/Safariの場合

Google ChromeやSafariでは、前述の方法では選択された直後にすぐにそれが解除されてしまいます。よって次のようにsetTimeoutメソッドを使用して遅延実行します。

<textarea onfocus="SelectText( this );"></textarea>

<script type="text/javascript">
  function SelectText( element )
  {
      window.setTimeout( function() { element.select(); }, 0 );
  }
</script>