CKEditor .focus () в случае instanceReady не работает - PullRequest
17 голосов
/ 12 апреля 2011

У меня проблемы с установкой фокуса в событии instanceReady в CKEditor 3.4.1. Я уже попробовал следующие два способа, но оба они не всегда работают.

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


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

Ответы [ 7 ]

19 голосов
/ 16 февраля 2013

или, может быть, попробуйте это, это гораздо проще:

использование startupFocus : true

поэтому ваш код должен выглядеть так:

CKEDITOR.replace('editor1',
{
    startupFocus : true,
...
12 голосов
/ 13 апреля 2011

вот ты, мой друг

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

или

CKEDITOR.replace('editor1',
{
    on :
    {
        instanceReady : function( ev )
        {
            this.focus();
        }
    }
} );
5 голосов
/ 20 февраля 2014
CKEDITOR.instances['instance-name'].on('instanceReady', function (event) {
            CKEDITOR.instances['instance-name'].focus();
        });
1 голос
/ 08 февраля 2017

Ни один из приведенных выше ответов не работал для меня. Вот что я сделал для ХРОМ , и он работает просто отлично:

CKEDITOR.instances['instance-name'].container.focus();
1 голос
/ 22 августа 2016

Лучший способ для меня,

  1. найдите экземпляр CKEditor, затем
  2. событие фокусировки триггера

    Критическим моментом является фокусировка экземпляра на время ожидания

    для (экземпляр var в CKEDITOR.instances) {
    $ timeout (function () { CKEDITOR.instances [экземпляр] .focus (); }); }

Примечание: я нашел экземпляр с циклом for. Вы можете найти лучший способ найти экземпляр

1 голос
/ 17 августа 2016

немного поздно, но:

CKEDITOR.replace( 'YourEditor', 
{ 
 on:
   {
     instanceReady : function( evt )
     {
       //Set the focus to your editor
       CKEDITOR.instances.YourEditor.focus();
      }
    }
}

у меня отлично работает. Найдено здесь

0 голосов
/ 08 июня 2015

Грязный путь (обязательно прочитайте комментарий под моим ответом):

jQuery('.cke_wysiwyg_frame').contents().find('body').focus();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...