我正在尝试向 tinyMCE 的代码插件添加一些验证逻辑。
然而,似乎当调用窗口的 onSubmit 函数时,窗口默认关闭。
onSubmit 函数当前如下所示:
onSubmit: function (e) {
// We get a lovely "Wrong document" error in IE 11 if we
// don't move the focus to the editor before creating an undo
editor.focus();
editor.undoManager.transact(function () {
editor.setContent(e.data.code);
});
editor.selection.setCursorLocation();
editor.nodeChanged();
}
我想做的是向插件添加一些验证逻辑,以防止 tinyMCE 重新格式化无效的 html,而是显示 html 无效的消息。本质上,是这样的:
onSubmit: function (e) {
// We get a lovely "Wrong document" error in IE 11 if we
// don't move the focus to the editor before creating an undo
var isCodeValid = true;
//check if code valid
isCodeValid = ValidateCode(e.data.code);
if (isCodeValid) {
//if code valid, send to tinyMCE to let it do it's thing
editor.focus();
editor.undoManager.transact(function () {
editor.setContent(e.data.code);
});
editor.selection.setCursorLocation();
editor.nodeChanged();
}
else {
//if code invalid, display error message and keep text editor window open
tinyMCE.activeEditor.windowManager.alert("Your HTML is invalid. Please check your code and try submitting again.");
return;
}
}
但是,似乎 onSubmit 函数无论如何都会关闭文本编辑器窗口。我想知道是否有办法阻止它这样做。我已经浏览了留下很多需要解释的文档,并查看了其他插件作为示例。我能找到的最接近的是 searchandreplce 插件。“查找”按钮调用 onSubmit 函数,但如果“查找”文本字段为空白,它似乎保持打开状态。但是,它背后的逻辑似乎与我可以在 Code 插件中使用的逻辑大不相同。
任何熟悉 tinyMCE API 的人都可以给我任何关于如何在调用 onSubmit 时防止窗口关闭的想法吗?还是我必须走另一条路?