我有一个自定义的youtube插件,可以将图像添加到我的tinyMCE编辑器中,并被服务器端的嵌入式代码或其他代码替换。
唯一剩下的就是当我在编辑器中选择图像时,advImage图标和我的插件图标都设置为活动状态。 我想将advimage设置为非活动状态。我试过这样的东西:
cm.setActive('image', false);
感谢Thariama(请参阅下面的回答)我知道正确的名称应为'image'
。这是从我的youtube插件editor_plugin.js
文件中调用的,在控制台中我可以看到在选择执行代码并且image
是正确目标的图像时。
如何将图像插件设置为非活动状态?
请参阅下面的评论Thariama的答案以获取更多信息。
答案 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);
}