[英]Load resp. unload Plugin or MenuItem using the TinyMCE API
我正在使用TinyMCE 4.0.x,API4进行工作的项目。 我有一些简单的自定义插件,例如:
tinymce.PluginManager.add('simplePlugin', function(editor, url) {
editor.addButton('simplePluginButton', {
text: 'Simple Example',
icon: false,
onclick: function() { alert('Do something...'); } });
editor.addMenuItem('simplePluginMenuItem', {
text: 'Simple Example',
context: 'tools',
onclick: function() { alert('Do something...'); } });
});
我要加载 resp。 使用TinyMCE API和按钮resp即时卸载 Plugin-MenuItem和Plugin-Button (或Plugin !!)。 项目响应 插件名称(在我的情况下为simplePluginMenuItem和simplePluginButton或simplePlugin )。
我面临的问题是我无法使用API来访问/查找插件或MenuItem /工具栏按钮!
我尝试了不同的方法,但没有成功! 例如:
tinymce.activeEditor.plugins
获取和修改插件列表,但是如何使用API重新加载编辑器? tinymce.ui
命名空间具有MenuItem
类,该类具有remove
方法 -如何通过API查找MenuItem? 当我调用tinymce.activeEditor.editorManager.ui.Menu
我正在获取类,而不是当前菜单实例! 有没有一种使用API检索当前菜单实例的方法? 我想念什么吗? 是否有使用API检索MenuItem
或ToolbarButton
或者该API仅可用于创建新的编辑器项。 组件?
像这样的伪代码 :
tinymce.activeEditor.getActiveMenu.findMenuItem('simplePluginMenuItem').remove();
我找到了这个旧的SO帖子 ,但是在那时(2009年),有人问这个问题,API版本4.0.x尚未发布。
我发现的一种可能的解决方案是提供自定义插件的工具栏按钮和菜单项,其中包含div元素的唯一ID:
tinymce.PluginManager.add('simplePlugin', function(editor, url) {
editor.addButton('simplePluginButton', {
id : 'simplePluginButton001',
text: 'Simple Example',
icon: false,
onclick: function() { alert('Do something...'); } });
editor.addMenuItem('simplePluginMenuItem', {
id : 'simplePluginMenuItem001',
text: 'Simple Example',
context: 'tools',
onclick: function() { alert('Do something...'); } });
});
现在,TinyMCE编辑器中生成的HTML代码如下所示:
<div id="simplePluginButton001"
role="button"
class="mce-widget mce-btn mce-first mce-last"
tabindex="-1"
aria-labelledby="simplePluginButton001">
<button
role="presentation"
type="button"
tabindex="-1">
Simple Example
</button>
</div>
并且div元素容器可以直接检索和操作(例如使用jQuery):
var pluginToolbarButton = $("#simplePluginButton001");
pluginToolbarButton.hide();
//pluginToolbarButton.show();
//pluginToolbarButton.remove();
这对于我的情况来说很好用-我可以建立菜单项列表。 工具栏按钮ID,应使其不可见。 可见。
不过,我希望我可以使用API进行此类操作-IMO更加优雅,而且似乎是正确的 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.