我在网站上使用 CKEditor,我需要能够在通过编辑器创建的一些链接上放置特殊的数据属性。用户将通过选中链接对话框中的复选框来指示他们需要将特殊属性放在链接上。我设法使用以下代码在链接对话框中添加了一个复选框:
CKEDITOR.on('dialogDefinition', function(ev) {
if (ev.data.name == "link") {
var info = dialog.getContents("info");
info.elements.push({
type: "vbox",
id: "urlOptions",
children: [{
type: "hbox",
children: [{
id: "button",
type: "checkbox",
label: "Button",
commit: function(data) {
data.button = this.getValue()
console.log("commit", data.button, data);
},
setup: function(data) {
this.setValue(data.button);
console.log("setup", data.button, data);
}
}]
}]
});
}
});
现在我有两个问题。第一个是尽管我在commit
andsetup
函数中添加了应该保存复选框状态的代码,但它不起作用。就好像data
除了默认情况下的参数之外,不能保存任何其他参数。
第二个问题是我不知道如何在我的链接上添加/删除数据属性。在我看来,我应该在onOk
对话框的回调中这样做,但是,链接对话框已经有一个onOk
回调,所以我不确定我应该如何进行。当然,我不想直接修改任何 CKEditor 的文件。
我怎样才能完成这些事情?