Javascript CKEditor:如何确保输入的一致性

Javascript CKEditor:如何确保输入的一致性,javascript,ckeditor,Javascript,Ckeditor,我在我的站点中使用CKeditor来获取用户输入。我使用CKEditor是因为我希望用户能够进行某种格式设置,比如使文本加粗、斜体、复制粘贴内容等。 我得到的输入也用于制作一些报告 现在我面临的问题是,有些用户使用不同的字体[有些使用Arial,有些使用Calibiri等],还使用他们喜欢的字体大小 在制作报告时,我希望确保通过网站输入的文本至少在两个方面保持一致——字体和字体大小[比如我希望限制为Arial和大小10] 我正在考虑禁用用于选择字体和字体大小的编辑器功能。但是,如果用户是复制粘贴

我在我的站点中使用CKeditor来获取用户输入。我使用CKEditor是因为我希望用户能够进行某种格式设置,比如使文本加粗、斜体、复制粘贴内容等。 我得到的输入也用于制作一些报告

现在我面临的问题是,有些用户使用不同的字体[有些使用Arial,有些使用Calibiri等],还使用他们喜欢的字体大小

在制作报告时,我希望确保通过网站输入的文本至少在两个方面保持一致——字体和字体大小[比如我希望限制为Arial和大小10]

我正在考虑禁用用于选择字体和字体大小的编辑器功能。但是,如果用户是复制粘贴内容,那么我仍然会有字体和大小的问题。我正在寻找我可以尝试的选择

我想到的一个选项是-粘贴内容后,如果我可以运行CKEditor,并根据我的字体和大小规范使用一些选项来替换内容。如果是,我该怎么做

我正在考虑的另一个选项是-在表单中有另一个字段,它将从用户输入的字段中获取输入,并根据我的规范使用CKEditor设置值

在这两种情况下,我都需要知道用户何时完成了对字段的操作,以便我更新相同或不同的字段。 有什么建议吗

谢谢
pradeep

第一种方法是在
getData
事件上调用
selectAll
removeFormat
命令:

CKEDITOR.replace( 'editor1', {
    on: {
        getData: function() {
            // Save the old selection
            var ranges = this.getSelection().getRanges();

            this.execCommand( 'selectAll' );
            this.execCommand( 'removeFormat' );

            // Restore the selection
            this.getSelection().selectRanges( ranges );
        }
    }
});
如果愿意,也可以在粘贴事件上执行此操作。请注意,
removeFormat
可能会破坏您的选择,编辑器将无法还原它

这是一个肮脏的方式,但你可以很容易地,你想删除。您也可以使用此选项:
config.forcePasteAsPlainText=true以“去除”粘贴内容

然而,要做到这一点,你应该读一点关于


温和的做法是:

CKEDITOR.replace( 'editor1', {
    on: {
        instanceReady: function() {
            this.dataProcessor.htmlFilter.addRules({
                attributes: {
                    style: function( attribute ) {
                        return false;
                    },
                    width: function( attribute ) {
                        return false;
                    },
                    height: function( attribute ) {
                        return false;
                    },
                    // ...
                    // You can modify (remove) any attribute you want
                }
            });
        }
    }
});

最终,您甚至可以使用regex过滤
style
属性,并删除一些您不喜欢的位。

花了一些时间阅读与数据处理器相关的文档。我将采取第二种方法取得进展。