Web サイトで 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);
}
}]
}]
});
}
});
今、私には2つの問題があります。1 つ目は、チェックボックスの状態を保存する関数commit
と関数にコードを追加したにもかかわらず、機能しないことです。は、デフォルトでそこにあるパラメータ以外のパラメータを保持できないかのようですsetup
。data
2 つ目の問題は、リンクのデータ属性を追加または削除する方法がわからないことです。ダイアログのコールバックでそれを行う必要があるように思えますonOk
が、リンクダイアログにはすでにonOk
コールバックがあるため、どのように進めるべきかわかりません。もちろん、CKEditor のファイルを直接変更したくはありません。
どうすればこれらのことを達成できますか?