0

いくつかのカスタム パラメーターに依存する ckeditor プラグインがあります。これらのパラメータは、操作の過程で値が変わる場合があります。私がこれを実装した方法は、プラグイン内のローカル変数に現在の値を保持することでした。これは最初に初期化され、カスタム コマンドで変更できます。そのようです

var somethingId = editor.config.myplugin_Something;
editor.addCommand('changeSomething',  {
    exec: function(_editor, data) {
        somethingId = data.something;
    }
});

これは問題なく動作しますが、(私が知る限り) データを変更する必要がある状況に到達しているという問題がありますが、エディターはまだ初期化されていないため、

$.each(CKEDITOR.instances, function (index, editor) {
    editor.execCommand('changeSomething', {
        something: newValue
        });
});

効果がなく、プラグインは初期設定で渡された値で終了します。

グローバル変数を使用することから抜け出す良い方法は思いつきません。ckeditor プラグインの変更可能な構成パラメーターを管理するより良い方法はありますか?

4

1 に答える 1

0

私は十分に単純な解決策を思いつきました。configオブジェクト自体を使用し、初期化コールバックでも正しい値が設定されていることを確認してください。

したがって、初期化は次のようになります。

var config = { width: xxx, height: xxx}; // do not include "something" value
$('#mytextbox').ckeditor(function(){
    this.config.myplugin_somethingId = currentSomethingValue;
});

後で変更する必要がある場合は、

$.each(CKEDITOR.instances, function (index, editor) {
     editor.config.myplugin_somethingId = newSomethingValue;
});
于 2012-05-21T18:33:12.313 に答える