TinyMCE将Active设置为false advImage插件



我有一个自定义的youtube插件,它将图像添加到我的tinyMCE编辑器中,并被服务器端的嵌入式或其他代码替换。

剩下的就是当我在编辑器中选择图像时,advImage图标和我的插件图标都会被设置为活动。我想将advimage设置为非活动。我试过这样的东西:

 cm.setActive('image', false);

感谢Thariama(见下面的答案),我知道正确的名字应该是'image'。这是从我的youtube插件editor_plugin.js文件中调用的,在控制台中,我可以看到在选择一个图像时,代码被执行,image是正确的目标。

如何将图像插件设置为非活动?

有关更多信息,请参阅Thariama回答下方的评论。

我将演示停用html按钮(代码插件)上的按钮/控件的正确方法

var cm = tinymce.get('my_editor_id').controlManager;
cm.get('code').setActive(0); // get the control named 'code'

要了解哪些控件可用,您可以将其记录到您的控制台

console.log(cm.controls);

在这之后,我让它呆了一段时间,因为它不在我的优先级列表的首位。现在这是我清单上的最后一件事,因为我更多地使用tinyMCE和它的代码,我很快就找到了解决方案。

我想我需要转到根目录:editor_template.js。这是因为图像被设置为活动,所以我需要更改它。

我在youtube(现在还有vimeo)上的图片有一个alt属性,可以告诉我这是youtube还是vimeo视频。现在我需要禁用其中任何一个插件。

我把它放在这段代码后面的第1117行(它为所有img标签设置了活动状态

p = getParent('IMG');
if (c = cm.get('image'))
    c.setActive(!co && !!p && n.className.indexOf('mceItem') == -1);

我的代码:

if(ed.selection.getNode())
            if(ed.selection.getNode().getAttribute('alt') === 'videoYoutube' || ed.selection.getNode().getAttribute('alt') === 'videoVimeo') // Get the current selection in the editor and compare
            {
                cm.setDisabled('image', true); // Change disable state
                cm.setActive('image', false); // Change active state state
            }
            else
            {
                cm.setDisabled('image', false);
            }
            if(ed.selection.getNode().getAttribute('alt') === 'videoYoutube')
            {
                cm.setDisabled('addvimeo', true);
            }
            else if(ed.selection.getNode().getAttribute('alt') === 'videoVimeo')
            {
                cm.setDisabled('addyoutube', true);
            }
            else
            {
                cm.setDisabled('addvimeo', false);
                cm.setDisabled('addyoutube', false);
            }

最新更新