フォーカスが乗ったらテキストを選択済みにする

下の2つのテキストフィールドにフォーカスを合わせてみてください。フォーカスを合わせるとは、マウスなどでクリックすることにより入力できる状態にすることです。

下のテキストフィールドにフォーカスが合ったらテキストフィールド内のテキストが選択済みになったのがわかったと思います。そして、フォーカスが別の部分に移動したらまた元にもどります。

HTML構造

<p><input type="text" value="テキストフィールド2" 
onfocus="onfocusText(this)" tabindex="1" accesskey="A" /></p>

JavaScript

id.select();だけではsafariやchromeではちゃんとテキストが選択されませんでした(一瞬だけ選択されてすぐ戻ってしまいます)。select関数はonfocusイベントが終了してから適用しないといけないようなのでsetTimeout関数で10ミリ秒(1000分の10秒)後にselect関数を実行しています。

function onfocusText(id) {
  setTimeout(
    function() {
      id.select();
    }, 10
  );
  return false;
}