2

私は CKEditor を使用しており、CKEditor ダイアログをポップアップするプラグインを作成しました。

OKボタンを再設計し、テキストボックスやチェックボックスなどの要素をフッターに追加する必要がありますが、そうするのは複雑すぎるようです.必要ですが、今私が欲しいのは、非表示のフッターでokButtonをトリガーすることですが、それを行う方法が見つかりません..

誰?!

4

2 に答える 2

4

もっと良い方法があるかもしれませんが、私がやっている方法は次のとおりです。

var ckDialog = window.CKEDITOR.dialog.getCurrent(),
    ckCancel = ckDialog._.buttons['cancel'],
    ckOk = ckDialog._.buttons['ok'];

ckOK.click();

秘訣は、ボタンを取得してから、CKEditor ボタン API を使用してクリックをシミュレートすることです。getButton が何らかの理由で定義されていないため、何らかの理由で dialog.getButton('ok') を呼び出すことができませんでした。私の方法は個人データを掘り下げますが、これが最善の方法であるとは思えません。

onShow イベント (ダイアログを定義するとき) から、ドキュメントが示すように [OK] ボタンを取得できました。

onShow: function () {
    var okBtn = this.getButton('ok');
    ...
}

ボタン API は次のとおりです: http://docs.ckeditor.com/#!/api/CKEDITOR.ui.dialog.buttonで、ダイアログ API にもアクセスできます (既に行ったことがあると思います!! !)

于 2013-02-05T04:54:59.083 に答える
3

この行を plugin.js に追加してみてください。

var dialog = this.getDialog();
document.getElementById(dialog.getButton('ok').domId).click();

私のカスタムプラグインでは、フッター全体ではなく「OK」ボタンを非表示にしています。以下は、私の plugin.js ステートメントの一部です。

{
    type : 'fileButton',
    id : 'uploadButton',
    label : 'Upload file',
    'for' : [ 'tab1', 'upload' ],
    filebrowser :
    {
        action : 'QuickUpload',
        onSelect : function(fileUrl, data){
            var dialog = this.getDialog();
            dialog.getContentElement('tab1','urlTxt').setValue(fileUrl);
            document.getElementById(dialog.getButton('ok').domId).click();
        }
    }
}

ところで、私はCKEditor 4.0 (リビジョン 769d96134b)を使用しています。

于 2013-02-01T02:46:14.167 に答える