我正在使用tinymce 3.5.6并且我想添加一个按钮然后将像Bold或Underline按钮一样工作,但会在所选文本中添加文本阴影。
首先,我在行
中添加了“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/(第一个按钮是带有flash图标的文本阴影)
修改 其他解决方案,为3个不同的阴影选项制作额外的下拉菜单。但我想让它像格式下拉菜单一样工作(选择一个标记,第二次点击将取消阴影) 我不希望它成为Styles或Format下拉菜单的一部分。我希望它在单独的下拉菜单中。 我不知道怎么做......有什么想法吗?
由于
答案 0 :(得分: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;
}
});
},
});
我在名为toggle
之外定义了一个变量。以及我根据切换值设置的名为noshadow
的额外格式:)
我甚至尝试删除此link中指定的格式,但它对我来说无效。但我确实让它发挥作用:)