最近项目用到百度额UEditor文本编辑器,今天测试向我提出了一个问题。就是在输入的文字超过默认的最大字数限制之后,虽然提示“字数超过最大范围,服务器可能拒绝保存”,但是仍然可以点击保存按钮进行保存。
现在想要实现在达到最大字数的时候,就禁止再继续输入了。就像之前微博那样最大140字超过就不能输入那样。
查了官方文档,无果。然后百度到的答案几乎一致。如下图所示:
第一步:在ueditor.all.js中找到这两行注释掉
countDom.innerHTML = errMsg;
editor.fireEvent(“wordcountoverflow”)
第二步:在注释点的两行下面写上这三行就搞定了
var content = editor.getContentTxt();
editor.setContent(content.substring(0,maxwordsnum));
editor.focus(true);
然而,参照此方法并没有用,F12调试js代码发现,maxwordsnum
没有定义啊。
于是试着修改了一下这段代码
function setCount(editor,ui) {
editor.setOpt({
wordCount:true,
maximumWords:10000,
wordCountMsg:editor.options.wordCountMsg || editor.getLang("wordCountMsg"),
wordOverFlowMsg:editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg")
});
var opt = editor.options,
max = opt.maximumWords,
msg = opt.wordCountMsg ,
errMsg = opt.wordOverFlowMsg,
countDom = ui.getDom('wordcount');
if (!opt.wordCount) {
return;
}
var count = editor.getContentLength(true);
if (count > max) {
// countDom.innerHTML = errMsg;
// editor.fireEvent("wordcountoverflow");
debugger;
var content = editor.getContentTxt();
editor.setContent(content.substring(0,max));
editor.focus(true);
} else {
countDom.innerHTML = msg.replace("{#leave}", max - count).replace("{#count}", count);
}
}
其实只是将maxwordsnum修改成了max变量,成功。