获取tinymce中的单词数
Get the count of words in tinymce
我在 tinymce 之外有一个字数统计 div,它显示了字数统计但没有使用 wordCount 插件而是使用正则表达式来计算字数。
但是当我添加项目符号或将粗体应用于已键入的文本时,此计数未显示正确的值[它显示计数为 3,而我在使用项目符号时仅输入了一个单词并将计数增加了2 同时突出显示已键入的文本]
当使用粗体、斜体、下划线或项目符号或使用 wordCount 插件在 stauts 栏外使用它的输出时,任何人都可以建议在正则表达式中做什么以获得正确的计数[在这种情况下,我的话计数 div]
这是代码:
tinymceConfig = {
mode:"exact",
elements:"essay",
menubar: false,
statusbar: false,
plugins: "autoresize",
content_css : '../../theme/css/Language/editor.css',
toolbar : "bold italic underline bullist",
resize:"height",
autoresize_max_height: 325,
setup : function(editor) {
if ($('#essay').prop('readonly')) {
editor.settings.readonly = true;
}
editor.on('keydown', function (evt) {
var wordCount = 0;
var valid_keys = [8, 46];
text = editor.getContent().replace(/(< ([^>]+)<)/g, '').replace(/\s+/g, ' ');
text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
wordCount = text.split(' ').length-1;
if(wordCount >= Helpers.constants.MAX_WORDS && valid_keys.indexOf(evt.keyCode) == -1)
{
evt.preventDefault();
Helpers.prompt('You have reached the maximum word limit.');
//evt.stopPropagation();
return false;
}
});
editor.on('keyup', function (evt) {
var text = '';
clearTimeout(saveEssayIntervalId);
saveEssayIntervalId = setTimeout(function() {
saveEssay('silent');
}, 3000);
text = editor.getContent().replace(/(< ([^>]+)<)/g, '').replace(/\s+/g, ' ');
text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
var wordCount = text.split(' ').length;
$("#essayContainer .textAreaAfter").html("[ Words entered: "+wordCount+" ]");
});
} };
tinyMCE.init(tinymceConfig);
您可以从 TinyMCE 的 WordCount 插件中获取当前字数 - 您不需要自己计算。
theEditor = tinymce.activeEditor;
wordCount = theEditor.plugins.wordcount.getCount();
如果你有一个旧的tinyMCE版本,你可能没有getCount()
功能,在这种情况下你可以写,对于活动编辑器(否则传递编辑器的对象):
var editor = tinyMCE.activeEditor,
words = editor.plugins.wordcount._getCount(editor);
我在 tinymce 之外有一个字数统计 div,它显示了字数统计但没有使用 wordCount 插件而是使用正则表达式来计算字数。
但是当我添加项目符号或将粗体应用于已键入的文本时,此计数未显示正确的值[它显示计数为 3,而我在使用项目符号时仅输入了一个单词并将计数增加了2 同时突出显示已键入的文本]
当使用粗体、斜体、下划线或项目符号或使用 wordCount 插件在 stauts 栏外使用它的输出时,任何人都可以建议在正则表达式中做什么以获得正确的计数[在这种情况下,我的话计数 div]
这是代码:
tinymceConfig = {
mode:"exact",
elements:"essay",
menubar: false,
statusbar: false,
plugins: "autoresize",
content_css : '../../theme/css/Language/editor.css',
toolbar : "bold italic underline bullist",
resize:"height",
autoresize_max_height: 325,
setup : function(editor) {
if ($('#essay').prop('readonly')) {
editor.settings.readonly = true;
}
editor.on('keydown', function (evt) {
var wordCount = 0;
var valid_keys = [8, 46];
text = editor.getContent().replace(/(< ([^>]+)<)/g, '').replace(/\s+/g, ' ');
text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
wordCount = text.split(' ').length-1;
if(wordCount >= Helpers.constants.MAX_WORDS && valid_keys.indexOf(evt.keyCode) == -1)
{
evt.preventDefault();
Helpers.prompt('You have reached the maximum word limit.');
//evt.stopPropagation();
return false;
}
});
editor.on('keyup', function (evt) {
var text = '';
clearTimeout(saveEssayIntervalId);
saveEssayIntervalId = setTimeout(function() {
saveEssay('silent');
}, 3000);
text = editor.getContent().replace(/(< ([^>]+)<)/g, '').replace(/\s+/g, ' ');
text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
var wordCount = text.split(' ').length;
$("#essayContainer .textAreaAfter").html("[ Words entered: "+wordCount+" ]");
});
} };
tinyMCE.init(tinymceConfig);
您可以从 TinyMCE 的 WordCount 插件中获取当前字数 - 您不需要自己计算。
theEditor = tinymce.activeEditor;
wordCount = theEditor.plugins.wordcount.getCount();
如果你有一个旧的tinyMCE版本,你可能没有getCount()
功能,在这种情况下你可以写,对于活动编辑器(否则传递编辑器的对象):
var editor = tinyMCE.activeEditor,
words = editor.plugins.wordcount._getCount(editor);