css – 强制CKEditor将类添加到p-tags

前端之家收集整理的这篇文章主要介绍了css – 强制CKEditor将类添加到p-tags前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须配置CKEditor为内容中的每个p-tag添加一个class-attribute.您可以使用config.format_p执行类似的操作,但它只会将class-attribute应用于标记为“normal”的文本,而不是默认值.

任何人?

编辑:
我正在使用当前版本3.6.2.以下是我的配置的相关部分:

CKEDITOR.editorConfig = function( config )
{   
    config.removeFormatTags = 'b,div,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var,form,input,textarea';

    config.format_p =
    {
        element: 'p',attributes:
        {
            'class': 'tiny_p'
        }
    };
    config.skin = "office2003";
    config.entities_processNumerical = true;
}

config.format_p选项仅在用户从format-menu选择“normal”时才生效.config.removeFormatTags仅在用户手动单击清除按钮时才有效.两者都应该像在TinyMCE中一样自动工作.

解决方法

您可以添加html处理器过滤器
editor.dataProcessor.htmlFilter.addRules({
    elements :{
        p : function( element ){
            if ( element.className.indexOf("thiny_p") < 0){
                element.className += 'thiny_p';
            }
        }
    }
});

此外,如果在将内容发送到服务器之前不需要将其创建为ckedito插件,则可以使用jQuery更改内容

$("iframe","#cke_editor1").contents().find("p").addClass("tiny_p");

或者,如果textarea(源)处于活动状态

var editor= $("textarea","#cke_editor1"); 
editor.val(editor.val().replace(/<p>/gi,"<p class='thiny_p'>"))

你应该调整一点.replace(/< p> / gi,“< p class ='thiny_p'>”)正则表达式以支持其他情况.

编辑

终于有时间在我的盒子上下载和设置编辑器,这里是工作插件

CKEDITOR.plugins.add( 'customparagraph',{
    init: function( editor )
    {
        editor.addCommand('addParagraphClassName',{
            exec : function( editor ){    
                var ps = editor.document.$.getElementsByTagName("p");
                for (var i=0; i < ps.length; i++){

                    if(ps[i].className.indexOf("thiny_p") < 0){
                        ps[i].className += "thiny_p";
                    }

                }

            }
        });

        editor.ui.addButton( 'ThinyP',{
            label: 'Appends thiny_p class',command: 'addParagraphClassName',icon: this.path + 'images/icon.gif'
        });
    }
} );

把它放在plugins / customparagraph / plugin.js中
还创建图标图像插件/ customparagraph / images / icon.gif

在配置中,您将需要添加以下配置选项config.js您的CKEdito安装

CKEDITOR.editorConfig = function( config )
{
    config.extraPlugins = "customparagraph";
    config.toolbar = [ [ 'ThinyP' ] ]; // add other toolbars and keep in mid this can be overwritten in page which loads CKEditor
};

要么

在加载CKEditor的页面

<script type="text/javascript">
//<![CDATA[
    // Replace the <textarea id="editor1"> with a CKEditor
    // instance,using default configuration.
    CKEDITOR.replace( 'editor1',{
            extraPlugins : 'customparagraph',toolbar :
            [
                [ 'Bold','Italic','-','NumberedList','BulletedList','Link','Unlink' ],[ 'ThinyP' ]
            ]
        });
//]]>
</script>

用户必须在保存前单击工具栏按钮

猜你在找的CSS相关文章