2016-10-01 40 views
8

我想知道网页浏览器在给定的div中包裹了哪些文本。JavaScript:找到我们的文本换行发生在哪里

这个动机是一个所见即所得的编辑器,它使用contenteditable。用户在那里写文本,根据可编辑字段的宽度,字体和其他因素,它会在特定位置打包。我想知道这些发生在哪里。

我只能想到非常黑客的解决方案(例如,在每个角色周围插入一个span,在这些跨度上循环,获取他们的offsetTop属性,并在其更改时进行记录)。有没有更好的/标准的做法?

+1

什么是想与信息呢?你是在断点处添加元素,还是仅仅需要知道多少断点等? – kthornbloom

+0

我们希望在将内容呈现为其他格式时使用此信息获得相同的结果。换句话说,用户在网络上编辑内容并在特定位置看到线条断裂。然后用户将数据提交给服务器。服务器应该呈现看起来尽可能相似的PDF。 – Sjlver

+1

在SO和外部有很多这个问题的答案:https://github.com/xdamman/js-line-wrap-detector http://stackoverflow.com/questions/12887372/detect-browser-wrapped-lines- via-javascript –

回答

1

我做了一个谷歌,发现堆栈溢出,不知道这是你以后,但给它一个阅读。这是相当古老的。

Finding line-wraps

0
document.getElementById("body").onchange = function() {myFunction()}; 

     function myFunction() { 
      //Your eval script to log where changes took place 
     } 

或者

document.getElementById('body').addEventListener('change', myFunction()); 
相关问题