我需要检查用户输入的文本宽度,如果超出最大值,则不允许进一步输入。我知道如何使用当前字体和字体大小来测量div中文本的宽度。我用下面的函数测试文本的宽度:CKEditor中文本的最大宽度
editor.on("change", function (ev) {
var imprintText = editor.getData();
var textWidth = measureText(imprintText);
var hfMaxImprintWidth = document.getElementById("<%=hfMaxImprintWidth.ClientID%>");
var maxWidth = hfMaxImprintWidth.value;
if (textWidth >= maxWidth) {
};
});
但我不知道如何保持额外的字符被添加到textarea。我还想将文本限制为一行(不换行或新段落)。有人可以帮助我吗?谢谢!
你是指渲染宽度或字符数量?意思,'measureText()'做什么?它应该返回类似'300px'还是'54'?你怎么测量它在一个div里面?如果这样的话,为什么不将'imprintText'插入临时div,测量并使用该计算? – Nenotlep
这就是'measureText'所做的:它将文本放在一个临时div中,并以像素为单位返回其宽度。如果已经达到或超过这个最大宽度,我想知道如何拦截CKEditor,将下一个字符添加到文本框中。我想停止在编辑器窗口中允许更多输入。 –