Я использую 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
и setup
, который должен сохранить состояние флажка, он не работает. Как будто data
не может содержать никаких других параметров, кроме тех, которые есть по умолчанию.
Вторая проблема заключается в том, что я не знаю, как добавить/удалить атрибут data на моих ссылках. Мне кажется, что я должен делать это в обратном вызове onOk
в диалоговом окне, однако диалог ссылок уже имеет обратный вызов onOk
, поэтому я не уверен, как я должен продолжать. Я, конечно, не хочу напрямую изменять файлы CKEditor.
Как я могу выполнить эти вещи?