运行 命令标识符 RemoveFormat 在 运行 Tinymce 中的当前命令之前
Run command identifier RemoveFormat prior to running current command in Tinymce
我有一些自定义样式格式设置,可以将 class 添加到所选文本。如果用户选择一个新的,我有一个清除 formatting/classes 的请求。他们不需要分配多个 classes。理想情况下,我不必为 tinymce 修改任何核心文件,但如果有必要,我愿意这样做。
我的想法是捕捉格式选择,然后 运行 RemoveFormat 但它似乎会先 运行 初始命令。它将格式化然后删除格式。我想知道是否有办法先保存初始请求和 运行 RemoveFormat,然后再设置新的格式。此外,如果有更好的方法来做到这一点,我也对此持开放态度。我使用的是 4.7 版。
ed.on('ExecCommand', function checkListNodes (evt) {
let cmd = evt.command
if (cmd === 'mceToggleFormat') {
this.execCommand('RemoveFormat', false, '');
}
}
提前致谢
我找到了解决办法。有点hacky,但可以完成工作。我在 tinymce init 语句之前设置了变量。因此它将 运行 格式,然后清除选择的所有格式并发送最初选择的选项。清除格式后,它将再次 运行 格式,但这次不会通过检查已切换为 true 的变量来删除格式。
let doNotRemoveFormat = false;
setup: function (ed) {
ed.on('ExecCommand', function checkListNodes (evt) {
if (cmd === 'mceToggleFormat') {
if(!doNotRemoveFormat) {
let val = 'runThis|' + evt.value;
this.execCommand('RemoveFormat', false, val);
} else {
doNotRemoveFormat = false;
}
} else if (cmd === 'RemoveFormat') {
let value = evt.value.split("|");
if(value[0] === 'runThis') {
doNotRemoveFormat = true;
this.execCommand('mceToggleFormat', false, value[1])
}
});
我有一些自定义样式格式设置,可以将 class 添加到所选文本。如果用户选择一个新的,我有一个清除 formatting/classes 的请求。他们不需要分配多个 classes。理想情况下,我不必为 tinymce 修改任何核心文件,但如果有必要,我愿意这样做。
我的想法是捕捉格式选择,然后 运行 RemoveFormat 但它似乎会先 运行 初始命令。它将格式化然后删除格式。我想知道是否有办法先保存初始请求和 运行 RemoveFormat,然后再设置新的格式。此外,如果有更好的方法来做到这一点,我也对此持开放态度。我使用的是 4.7 版。
ed.on('ExecCommand', function checkListNodes (evt) {
let cmd = evt.command
if (cmd === 'mceToggleFormat') {
this.execCommand('RemoveFormat', false, '');
}
}
提前致谢
我找到了解决办法。有点hacky,但可以完成工作。我在 tinymce init 语句之前设置了变量。因此它将 运行 格式,然后清除选择的所有格式并发送最初选择的选项。清除格式后,它将再次 运行 格式,但这次不会通过检查已切换为 true 的变量来删除格式。
let doNotRemoveFormat = false;
setup: function (ed) {
ed.on('ExecCommand', function checkListNodes (evt) {
if (cmd === 'mceToggleFormat') {
if(!doNotRemoveFormat) {
let val = 'runThis|' + evt.value;
this.execCommand('RemoveFormat', false, val);
} else {
doNotRemoveFormat = false;
}
} else if (cmd === 'RemoveFormat') {
let value = evt.value.split("|");
if(value[0] === 'runThis') {
doNotRemoveFormat = true;
this.execCommand('mceToggleFormat', false, value[1])
}
});