instanceReady事件中的CKEditor .focus()无法正常工作

时间:2011-04-12 19:25:12

标签: javascript jquery ckeditor

我在设置CKEditor 3.4.1的instanceReady事件中的焦点时遇到问题。我已经尝试了以下两种方法,但两种方法并不总是有效。

CKEDITOR.on('instanceReady', function(e) { CKEDITOR.instances.editor1.focus(); });


CKEDITOR.replace('editor1',
{
    on :
    {
        instanceReady : function( ev )
        {
            ev.editor.focus();
        }
    }
} );

7 个答案:

答案 0 :(得分:19)

或者尝试这个,这更简单:

使用startupFocus : true

因此您的代码应如下所示:

CKEDITOR.replace('editor1',
{
    startupFocus : true,
...

答案 1 :(得分:12)

在这里,你去找我的朋友

CKEDITOR.replace('editor1',
{
    on :
    {
        instanceReady : function( ev )
        {
            CKEDITOR.instances.editor1.focus();
        }
    }
} );

CKEDITOR.replace('editor1',
{
    on :
    {
        instanceReady : function( ev )
        {
            this.focus();
        }
    }
} );

答案 2 :(得分:5)

CKEDITOR.instances['instance-name'].on('instanceReady', function (event) {
            CKEDITOR.instances['instance-name'].focus();
        });

答案 3 :(得分:1)

给我最好的方式,

  1. 找到CKEditor实例,然后
  2. 触发焦点事件

    关键点是将实例集中在超时

    for(在CKEDITOR.instances中的var实例){
        $ timeout(function(){        CKEDITOR.instances [实例] .focus();     });  }

  3. 注意:我发现带有for循环的实例。您可能会找到更好的方法来查找实例

答案 4 :(得分:0)

肮脏的方式(请务必阅读我的回答中的评论):

jQuery('.cke_wysiwyg_frame').contents().find('body').focus();

答案 5 :(得分:0)

有点晚了但是:

set_location_assignment PLL_1 -to "my_module:my_module_e|pll"

对我来说很好。 找到here

答案 6 :(得分:0)

上述答案都不适合我。以下是我为 CHROME 所做的工作,它运作得很好:

CKEDITOR.instances['instance-name'].container.focus();