TinyMCE自定义格式:添加和删除特定CSS样式

TinyMCE自定义格式:添加和删除特定CSS样式,tinymce,tinymce-plugins,Tinymce,Tinymce Plugins,目前,我正在开发一个使用自定义格式的插件。不幸的是,我不能使用类,因为输出HTML必须使用内联样式 我使用的声明如下: a.formatter.register("dotted", { inline : 'span', styles : { borderStyle : 'dotted', borderWidth : '1px', } }); a.formatter.regi

目前,我正在开发一个使用自定义格式的插件。不幸的是,我不能使用类,因为输出HTML必须使用内联样式

我使用的声明如下:

    a.formatter.register("dotted", {
        inline : 'span', 
        styles : {
            borderStyle : 'dotted', 
            borderWidth : '1px',
        }
    });
    a.formatter.register("dashed", {
            inline : 'span', 
            styles : {
                borderStyle : 'dashed', 
                borderWidth : '1px',
            }
    });
问题一:我想使用相互影响的格式。我的意思是:

用户单击“虚线边框”选项 ->如果所选内容已设置边框宽度,请不要触摸。如果未设置,则设置边框宽度:1px; ->无论当前设置的是什么,覆盖边框样式:虚线

用户单击“虚线边框”选项 ->如果所选内容已设置边框宽度,请不要触摸。如果未设置,则设置边框宽度:1px; ->无论当前设置的是什么,覆盖边框样式:虚线

用户点击“厚边框” ->如果已设置边框样式,请不要触摸。如果未设置,则设置边框样式:实心; ->无论设置了什么,覆盖边框宽度:3px

如何读取和过滤用于当前选择的当前CSS样式?在我的示例中,a是在单击按钮时传递给函数的编辑器实例。请不要混淆我的问题,因为它不是复制粘贴操作,所以我不能在这里使用该对象

问题二:如何删除这些样式,因为它们可能是不同组合的混合体

目前,我要解决的唯一想法是创建一个包含所有可能值的数组,并循环通过这些值,如

for (var i = 0; i < value.length; i++) {
    var cssobj = {
        inline : 'span', 
        styles : {
        }
    }

    eval("cssobj.styles." + cssattr + "= \"" + value[i] + "\"");
    a.formatter.register("tempformat", cssobj);
    a.formatter.remove("tempformat");
    a.formatter.unregister("tempformat");
}
for(变量i=0;i
我发现这是一个非常丑陋的解决方案,也不是很有效

还有其他想法吗