你如何设置TinyMCE textarea元素的焦点?

Jus*_*tin 26 jquery tinymce focus

我在页面上使用TinyMCE作为textarea,但它在其他元素的Tab键顺序中不能很好用.

当我跳出第一个元素时,我可以使用以下代码捕获:

$('#title').live('keypress', function (e) {
   if(e.keyCode == 9) {
       alert('tabbed out');
   }
});
Run Code Online (Sandbox Code Playgroud)

如何将焦点设置为TinyMCE编辑器?

jbn*_*unn 41

终于找到了答案...使用命令:

tinymce.execCommand('mceFocus',false,'id_of_textarea');
Run Code Online (Sandbox Code Playgroud)

就我的目的而言,'id_of_texterea'是"描述",即

<textarea id="description" ... ></textarea>
Run Code Online (Sandbox Code Playgroud)

在我的textarea之前的表单元素中,我将上面的execCommand添加到元素的"onblur"操作中.


小智 26

我知道这是一篇旧帖子,但只是添加了关于让编辑器打开并且无法正常工作的输入.我发现对我有用的是:

tinyMCE.activeEditor.focus();
Run Code Online (Sandbox Code Playgroud)

我必须在window.setTimeout事件中设置它,因为我使用JS对象等.希望这可以帮助.


小智 13

聚焦也是这样的:

tinyMCE.get('id_of_textarea').focus()
Run Code Online (Sandbox Code Playgroud)

看看tabfocus插件,它正是你想要的:

http://tinymce.moxiecode.com/tryit/tab_focus.php


小智 9

如果你正在使用jQuery的tinymce.以下将有效

$("#id_of_textarea").tinymce().focus();
Run Code Online (Sandbox Code Playgroud)

您只能在编辑器初始化之后执行此操作,因此您可能需要等待其中一个初始化事件.


小智 7

实际工作原理是在configfile(或jquery文件)中设置选项此选项使您可以自动聚焦编辑器实例.此选项的值应为编辑器实例ID.编辑器实例id是id原始textarea或被<div>替换的元素.

auto_focus选项的使用示例:

tinyMCE.init({
    //...
    auto_focus : "elm1"
});
Run Code Online (Sandbox Code Playgroud)


VGr*_*gen 7

对于TinyMCE 4来说,这些解决方案中的一些不再有效.

//似乎不适用于TinyMCE 4

tinymce.execCommand('mceFocus',false,'id_of_textarea'); 
Run Code Online (Sandbox Code Playgroud)

//没用

$("id_of_textarea").tinymce().focus();

tinyMCE.activeEditor.focus();
Run Code Online (Sandbox Code Playgroud)

什么对我有用

//在Chrome中运行良好,但在Firefox中根本不适用

tinyMCE.init({
    //...
    auto_focus : "id_of_textarea"
});
Run Code Online (Sandbox Code Playgroud)

//添加这个,这样Firefox也可以

init_instance_callback : "customInitInstanceForTinyMce", // property to add into tinyMCE.init()

function customInitInstanceForTinyMce() {
    setTimeout(function () {                         // you may not need the timeout
        tinyMCE.get('Description').focus();
    }, 500);
}
Run Code Online (Sandbox Code Playgroud)


小智 6

tinyMCE.get('Description').getBody().focus();

以上工作也适用于Firefox,Chrome和IE.我没有在其他浏览器中测试过.

  • 不知道为什么,但接受的答案对我不起作用,而这个答案对我有用。 (2认同)