【发布时间】:2013-05-12 16:18:01
【问题描述】:
我最近将 TinyMCE 4.0b2 添加到我一直在开发的 Web 应用程序中。
我需要打开视觉辅助进行编辑,但在打印时关闭了,并且花了相当多的时间通过他们的论坛、StackOverflow 和谷歌寻找解决方案,但无济于事!
【问题讨论】:
标签: javascript plugins printing tinymce
我最近将 TinyMCE 4.0b2 添加到我一直在开发的 Web 应用程序中。
我需要打开视觉辅助进行编辑,但在打印时关闭了,并且花了相当多的时间通过他们的论坛、StackOverflow 和谷歌寻找解决方案,但无济于事!
【问题讨论】:
标签: javascript plugins printing tinymce
所以...我决定自己调查这个问题!
为了让它工作,我必须手动“调整”打印插件的打印命令。
以下修复适用于 TinyMCE v.4.0b2,即撰写本文时可用的版本;它可能适用于也可能不适用于以前和未来版本的 TinyMCE。
打印插件文件可以在js/tinymce/plugin/print/目录下找到。
在您喜欢的编辑器中打开 plugin.min.js 文件,您会看到如下内容:
tinymce.PluginManager.add("print",function(e){e.addCommand("mcePrint",function(){e.getWin().print();}),e.addButton("print",{title:"Print",cmd:"mcePrint"}),e.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});
查看 tinymce 源代码后,我找到了 hasVisual 编辑器属性和 mceToggleVisualAid 命令。然后我将这两个添加到打印插件中
if(e.hasVisual){e.execCommand("mceToggleVisualAid");}
就在代码调用之前
e.getWin().print();
成品如下图:
tinymce.PluginManager.add("print",function(e){e.addCommand("mcePrint",function(){if(e.hasVisual){e.execCommand("mceToggleVisualAid");} e.getWin().print();}),e.addButton("print",{title:"Print",cmd:"mcePrint"}),e.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});
我希望这对将来遇到此问题的人有所帮助。
【讨论】: