2

我正在使用 tinymce 3.5.6,我想添加一个按钮,然后将像粗体或下划线按钮一样工作,但会为所选文本添加文本阴影。

首先,我在该行中添加了“textshadow”

theme_advanced_buttons1

并添加了所有这些行:

'formats' : {
    'textshadow' : {
        'inline' : 'span',
        'styles' : {
            'text-shadow' : '0px 1px 5px rgba(0,0,0,0.4)'
        }
    }
},

'setup' : function (ed) {
    ed.addButton('textshadow', {
        'title' : 'Text shadow',
        'image' : 'js/tiny_mce/themes/advanced/img/textshadow.png',
        'onclick' : function () {
            ed.formatter.apply('textshadow');
            return false;
        }
    });
},

这是可行的,但不像粗体或下划线按钮那样起作用。当我选择文本并单击文本阴影按钮时,它会为所选文本添加阴影,但不会在第二次单击时删除阴影。此外,当我选择带有文本阴影的文本时,它没有选择(标记为打开)文本阴影按钮。

我需要做些什么才能使 taxt-shadow 按钮像粗体或下划线按钮一样工作?

演示: http: //jsfiddle.net/8wGYC/1/(第一个按钮是带有闪光图标的文本阴影)

编辑: 其他解决方案,为不同的阴影制作带有 3 个选项的额外下拉菜单。但我希望它像格式下拉菜单一样工作(选中一个,第二次单击将取消阴影)我不希望它成为样式或格式下拉菜单的一部分。我希望它位于单独的下拉菜单中。我不知道该怎么做......有什么想法吗?

谢谢

4

1 回答 1

0

感谢您,JSfiddle我能够找到解决您问题的方法。我不知道它是否正确,但效果很好...... :)

这是我编辑的微小 MCE 代码

var toggle=0;
tinyMCE.init({
        // General options
        mode : "textareas",
        theme : "advanced",
        plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

        // Theme options
        theme_advanced_buttons1 : "textshadow, save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true,

        // Skin options
        skin : "o2k7",
        skin_variant : "silver",

        // Example content CSS (should be your site CSS)
        content_css : "css/example.css",

        // Drop lists for link/image/media/template dialogs
        template_external_list_url : "js/template_list.js",
        external_link_list_url : "js/link_list.js",
        external_image_list_url : "js/image_list.js",
        media_external_list_url : "js/media_list.js",

        // Replace values for the template plugin
        template_replace_values : {
                username : "Some User",
                staffid : "991234"
        },
        'formats' : {
            'textshadow' : {
                'inline' : 'span',
                'styles' : {
                    'text-shadow' : '0px 1px 5px rgba(0,0,0,0.4)'
                }
            },
            'noshadow' : {
                'inline' : 'span',
                'styles' : {
                    'text-shadow' : '0px 0px 0px rgba(0,0,0,0)'
                }
            }
        },

        'setup' : function (ed) {
            ed.addButton('textshadow', {
                'title' : 'Text shadow',
                'image' : 'http://www.tinymce.com/js/tinymce_3_x/jscripts/tiny_mce/themes/advanced/img/flash.gif',
                'onclick' : function () {
                    if(!toggle){
                    ed.formatter.apply('textshadow');
                        toggle=!0;
                    }
                    else{
                      ed.formatter.apply('noshadow');
                        toggle=0;  
                    }
                    return false;
                }
            });
        },
});

我在命名之外定义了一个变量togglenoshadow以及我根据切换值设置的名为的额外格式:)

我什至尝试删除此链接中指定的格式,但对我来说不起作用。但我确实让它工作了:)

于 2013-10-09T11:27:42.623 回答