我有一个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插件的可变配置参数?
答案 0 :(得分: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;
});