我需要檢查用戶輸入的文本寬度,如果超出最大值,則不允許進一步輸入。我知道如何使用當前字體和字體大小來測量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,將下一個字符添加到文本框中。我想停止在編輯器窗口中允許更多輸入。 –