5

我使用此代码创建一个自定义 tinymce 按钮,该按钮可以更改一类图像。它在设置块中。

ed.addButton('cust_setimgaspreview', {
        title : 'Set image as a preview image',
        image : 'ikony/previews.png',
        onclick : function() {
            if(ed.selection.getNode().tagName == 'IMG')
            {
                 ed.selection.getNode().className = 'preview';
            } else {
                alert('You need to select an image.');
            }
        }
    });

如您所见,我使用“丑陋的方法”来禁用除图像以外的其他元素的类更改。如何以与 tinymce 使用其默认按钮(如编辑图像或编辑链接)相同的方式禁用/启用该按钮?我想我需要以某种方式捕捉选择更改,然后根据选择更改按钮状态,但我不知道该怎么做。

4

2 回答 2

7

刚刚想通了——这很简单。我刚刚编辑了我的设置函数并添加了“onNodeChange”处理程序。

setup : function(ed) {

    ed.onNodeChange.add(function(ed, cm, node) {
        cm.setDisabled('cust_setimgaspreview', !(node.tagName == 'IMG'))
    });

    ed.addButton('cust_setimgaspreview', {
        title : 'Set image as a preview image',
        image : 'ikony/previews.png',
        onclick : function() {
            ed.selection.getNode().className = 'preview';
        }
    });

}
于 2012-07-31T17:19:32.067 回答
0

您可以使用控制管理器提供的功能。

你可以使用即

        state = !state;
        ed.controlManager.setActive('my_button_id', state);
于 2012-07-30T10:57:50.883 回答