web-dev-qa-db-ja.com

instanceReadyイベントのCKEditor.focus()が機能していません

CKEditor3.4.1のinstanceReadyイベントでフォーカスを設定する際に問題が発生します。私はすでに次の2つの方法を試しましたが、両方が常に機能するとは限りません。

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


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

または多分これを試してみてください、これははるかに簡単です:

使用する startupFocus : true

したがって、コードは次のようになります。

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

ここにあなたは私の友人に行きます

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

または

CKEDITOR.replace('editor1',
{
    on :
    {
        instanceReady : function( ev )
        {
            this.focus();
        }
    }
} );
12
mcgrailm
CKEDITOR.instances['instance-name'].on('instanceReady', function (event) {
            CKEDITOR.instances['instance-name'].focus();
        });
5
texian

少し遅いですが:

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

私にとってはうまくいきます。見つかりました ここ

1
mikey

私にとって最良の方法は、

  1. cKEditorインスタンスを見つけて、
  2. フォーカスイベントをトリガーする

    重要なポイントはタイムアウトでインスタンスにフォーカスすることです

    for(CKEDITOR.instancesのvarインスタンス){
    $ timeout(function(){CKEDITOR.instances [instance] .focus();}); }

注:forループのあるインスタンスを見つけました。インスタンスを見つけるためのより良い方法を見つけるかもしれません

1
Habib Adıbelli

上記の答えはどちらも私にはうまくいきませんでした。これが私がしたことです[〜#〜] chrome [〜#〜]そしてそれはうまく機能します:

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

汚い方法(私の答えの下のコメントを必ず読んでください):

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