4

ここに投稿された方法を確認して試し、CKEditor ダイアログがポップアップする場所を設定しました。

CKEditor のダイアログの位置をプログラムで設定する

これは非推奨か不完全のようです。「リンク」ダイアログに対してこれを試みると、ダイアログ ボックスが正しくフォーマットされません。これは、この onShow 定義がデフォルト アクションに追加するのではなく、それを置き換えるかのようです。リンクダイアログをメニューバーの近くに配置するために、このコードまたは新しい方法を変更するための提案はありますか?

CKEDITOR.on('dialogDefinition', function(e) {
   var dialogDefinition = e.data.definition;

   dialogDefinition.onShow = function() {
       this.move(200, 100);
   }
})
4

1 に答える 1

4

あなたが正しい。あなたのコードは基本的なonShow定義を上書きしています。

あなたがしなければならないことは、単にデフォルト(ジェネリック)を保存しonShow、それを上書きして、保存されたものを呼び出し、最終的にコードを実行することです:

CKEDITOR.on( 'dialogDefinition', function( event ) {
    var dialogDefinition = event.data.definition,
        genericOnShow = dialogDefinition.onShow;

    dialogDefinition.onShow = function() {
        genericOnShow.apply( this );
        this.move( 10, 10 );
        // ...or anything you want ;)
    }
});

ほら!

PS。applyまたはcallで常にコンテキストを渡すことを忘れないでください。

于 2012-10-06T22:28:11.483 に答える