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();
}相关内容
- editor.getSelection()——读取当前选区,而不改变焦点。
- editor.setReadOnly(readOnly)——切换只读模式。
- 所有编辑器方法——完整的 JavaScript API。