我正在Angular 7应用程序中使用CKEditor版本16。我已将最大字符长度设置为4096。一旦用户尝试键入4097th,字符控制就会启动并显示从开始到键入为止的所有键入内容,或产生键入延迟。之后,开头显示的多余字符将被自动删除。
我尝试设置editorConfig属性,但没有成功。 我已经检查了是否有任何超时代码是造成此问题的原因,而并非如此。
CKEDITOR.editorConfig = function( config ) {
config.startupFocus= true;
config.extraPlugins = 'wordcount';
config.wordcount = {
showWordCount: false,
showCharCount: true,
maxCharCount: 4096,
showParagraphs: false,
countSpacesAsChars: true
};
config.pasteFromWordRemoveFontStyles = false;
config.pasteFromWordRemoveStyles = false;
config.extraAllowedContent= 'a[href]';
config.removePlugins = 'resize';
config.enterMode = CKEDITOR.ENTER_BR;
config.autoParagraph = false;
};
答案 0 :(得分:0)
您可以通过访问ck编辑器实例来尝试。
CKEDITOR.instance.editor1.on("key", function (evt){
let instance = CKEDITOR.instance.editor1
const data = instance.document.getBody().getText();
const currentCount = data.replace(/<[^>]*>|\s/g, "").length;
const maxCount = instance.config.wordcount.maxCharCount;
const isFunKey = (evt.data.keyCode === 8 || evt.data.keyCode === 46 ||
evt.data.keyCode === 35 || evt.data.keyCode === NumberConstants.36 ||
evt.data.keyCode === 37 || evt.data.keyCode === 38 ||
evt.data.keyCode === 39 || evt.data.keyCode === 40 ||
evt.data.keyCode === 1114129 );
if (currentCount >= maxCount) {
if (!isFunKey) {
evt.cancel();
}
}
})
如果您拥有更多的编辑器,则可以遍历实例并相应地更新代码。