← 全部文档

editor.focus()

把键盘焦点移到编辑器中,让用户无需先点击就能开始输入。可以在编辑器创建之后、以编程方式插入内容之后,或者关闭一个夺走了编辑区域焦点的对话框或侧边面板之后使用它。

语法

editor.focus()

参数

无。

返回值

无(undefined)。

行为说明

focus() 不只是对原生 DOM 焦点调用的简单包装——它会考虑编辑器的不同模式以及浏览器在选区方面的怪异行为:

  • 代码模式。当编辑器正在显示 HTML 源代码时,焦点会转到代码编辑器而不是富文本区域,因此在两种模式下调用都能得到正确的结果。
  • 选中的控件优先。如果当前选中了图片之类的控件,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();
}

相关内容