如何在contentEditable或其他地方找到自动换行创建的换行符?

时间:2015-01-25 18:46:35

标签: javascript jquery word-wrap

我正在尝试通过浏览器的布局引擎找到当前显示给用户的实际行数。发现'硬'休息,<'br'>标签等很容易,但我找不到在代码中看到我可以在屏幕上计算的内容的方法。

我在这里搜索过,并且有一些问题/答案暗示它无法完成,或至少非常复杂,但它们都已经过时了几年,也许事情已经发生了变化。

textContent不会这样做,并且使用div的高度在此应用程序中不起作用。也许有一种我不知道的jQuery方式?

1 个答案:

答案 0 :(得分:1)

将整个事物的高度除以一个字符的高度。这种方法适用于IE,Safari,FF和Chrome,虽然情况相当简单,只有一种字体等,所以可以通过更彻底的锻炼来宣布正确的方式;它需要空节点检查等。

function getLineCount(node) {
    if (node) {
        var range = document.createRange();
        range.setStart(node, 0);
        range.setEnd(node, 1);
        var h1 = range.getBoundingClientRect().height;
        range.setEnd(node, node.length);
        return Math.round(range.getBoundingClientRect().height / h1);
    }
};

风滚草徽章也被称为蟋蟀?