在TinyMCE 4中,我希望在预览弹出窗口显示之前更改显示的内容。此更改不得影响编辑器中的当前内容。我们可以这样做吗?
如果不能,我想抓住预览窗口的关闭事件。怎么做?
答案 0 :(得分:1)
TinyMCE允许我们通过属性init_instance_callback
注册回调使用BeforeExecCommand event,奇怪的是不在当前文档中,您可以在执行命令之前进行更改。我们可以类似地使用ExecCommand event在命令执行后进行更改。预览插件会触发mcePreview
命令。您可以查看Editor command Identifiers here。
将它们组合在一起,您可以在初始化TinyMCE时添加以下内容。这将显示"更改的内容"在预览中没有对TinyMCE中的内容进行可见的更改。
var preProssesInnerHtml;
tinymce.init({
//other things...
init_instance_callback: function (editor) {
editor.on('BeforeExecCommand', function (e) {
if (e.command == "mcePreview") {
//store content prior to changing.
preProssesInnerHtml = editor.getContent();
editor.setContent("changed content");
}
});
editor.on("ExecCommand", function (e) {
if (e.command == "mcePreview") {
//Restore initial content.
editor.setContent(preProssesInnerHtml);
}
});
}
}