//x = 字母一行的字符數比漢字一行的字符數 如: var x = 65/35 function getCharLengthByStr(str, x) { var curLen = 0; for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); var pixelLen = code > 255 ? x : 1; curLen += pixelLen; } return curLen; } // maxChar = 一行字母的長度 function getRowNumberByTextArea(str, enChars, cnChars) { if (str == '') return 5; var x = enChars / cnChars var lines = str.split('\n'); var rowsNumber = 0; for (var i = 0; i < lines.length; i++) { var tempRows = Math.ceil(getCharLengthByStr(lines[i], x) / enChars); rowsNumber += tempRows == 0 ? 1 : tempRows; } if (isIE()) return Math.ceil(rowsNumber * 1.4) + 2; //如需須要可把1.4參數提出去, 1.4 爲ie下不一樣字體的放大倍數。需自信調整。 return rowsNumber+2; //默認加2行 } // 判斷是否爲IE function isIE () { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false; } //獲取textarea行數, 例如 textarea 默認一行能夠爲60個英文字符,或者35個漢字。 function getRowNumberByGWTextArea(str) { return getRowNumberByTextArea(str, 65, 35); }