在之后,是否已使用所有插件初始化了编辑器,并且已应用所有allowedContentRulesdisallowedContentRules或任何其他数据过滤器,是否有办法在CKEDitor 4.x(准确地说是4.4.7)中获取所有允许标签的列表?

我希望拥有此列表,以便可以将其传递到后端进行白名单。我知道CKEditor已经有一个白名单插件,可以让我在前端和后端指定相同的白名单,但是我担心我可能会错过某些插件中使用的一些标记,这些标记可能会使它们瘫痪。

最佳答案

您可能正在寻找 CKEDITOR.filter.allowedContent 。可以从editor.filter属性访问它。如何做的小例子:https://jsfiddle.net/Comandeer/tb6f0g8r/

CKEDITOR.replace( 'editor1', {
    on: {
        instanceReady: function( evt ) {
            // It returns the array of all rules,
            //so if you want to send it to the server,
            // you'll probably need to "JSON-ify" it.
            var allowedContent = evt.editor.filter.allowedContent;
            console.log( JSON.stringify( allowedContent, null, '\t' ) );
        }
    }
} );

也许这种格式不如简单的字符串友好,但是它可以传达您需要的所有信息。

07-26 01:00