【问题标题】:How can I find the line-breaks created by word-wrapping in contentEditable or elsewhere?如何在 contentEditable 或其他地方找到由自动换行创建的换行符?
【发布时间】:2015-01-25 18:46:34
【问题描述】:
我正在尝试查找浏览器的布局引擎当前向用户显示的实际行数。查找“硬”中断、 标签等很容易,但我找不到在代码中查看我可以在屏幕上计数的方法。
我在这里搜索过,有几个问题/答案暗示它无法完成,或者至少涉及非常多,但它们都已经过时了好几年,也许事情已经改变了。
textContent 不这样做,并且使用 div 的高度在此应用程序中不起作用。也许有一种我不知道的 jQuery 方式?
【问题讨论】:
标签:
javascript
jquery
word-wrap
【解决方案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);
}
};
风滚草徽章也称为蟋蟀吗?