TinyMCE setActive to false advImage插件

时间:2012-08-28 12:26:02

标签: jquery tinymce

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

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

 cm.setActive('image', false);

感谢Thariama(请参阅下面的回答)我知道正确的名称应为'image'。这是从我的youtube插件editor_plugin.js文件中调用的,在控制台中我可以看到在选择执行代码并且image是正确目标的图像时。

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

请参阅下面的评论Thariama的答案以获取更多信息。

2 个答案:

答案 0 :(得分:1)

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

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

要找出可用的控件,您可以将其记录到控制台

console.log(cm.controls);

答案 1 :(得分:0)

在此之后我暂时搁置它,因为它不在我的优先级列表之上。现在这是我列表中的最后一件事,因为我更多地使用tinyMCE和代码,我很快找到了解决方案。

我认为我需要转到root:editor_template.js。这是图像设置为活动所以我需要改变它。

我的youtube图片(现在也是vimeo)有一个alt attribute来告诉我它是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);
            }