← すべてのドキュメント

editor.focus()

キーボードフォーカスをエディターに移し、ユーザーが先にクリックしなくても入力を始められるようにします。エディターの作成後、プログラムでコンテンツを挿入した後、あるいは編集領域からフォーカスを奪ったダイアログやサイドパネルを閉じた後に使います。

構文

editor.focus()

パラメーター

なし。

戻り値

なし(undefined)。

動作に関する注意

focus() は、ネイティブの DOM の focus 呼び出しを薄く包んだだけのものではありません。エディターのさまざまなモードや、ブラウザーの選択範囲の癖を考慮しています。

  • コードモード。エディターが HTML ソースを表示している間は、フォーカスはリッチテキストの領域ではなくコードエディターに送られるので、どちらのモードでもこの呼び出しは正しく動作します。
  • 選択されたコントロールが優先されます。画像などのコントロールが現在選択されている場合、focus() は何も変更せずに戻ります。これは意図的なものです。プログラムによる focus の呼び出しで、ユーザーの画像の選択(とそれに付随するサイズ変更ハンドル)が知らないうちに解除されるのを防いでいます。
  • キャレットは保持されます。ブラウザーによっては、フォーカスが編集用のフレームに移ると現在の選択範囲が破棄されます。エディターはその後で保存していた範囲を再適用するので、キャレットは文書の先頭に飛ばず、ユーザーが残した位置にとどまります。

使用例

エディターの準備ができたらすぐにフォーカスし、ページですぐに入力できるようにします。

var editor1 = new RichTextEditor("#div_editor1");
editor1.focus();

スニペットを挿入した後、エディターにフォーカスを戻して、自然に入力を続けられるようにします。

document.getElementById("btn_signature").onclick = function () {
    editor1.insertHTML("<p>-- <br/>Sent from RichTextEditor</p>");
    editor1.focus();   // the button took focus on click; give it back
};

非表示だったエディターを表示した後にフォーカスします。まだ display:none の要素にフォーカスしても何も起こらないので、先に表示してください。

function openComposer() {
    document.getElementById("composer").style.display = "block";
    editor1.focus();
}

関連項目