2016-10-01 13 views
8

Chciałbym dowiedzieć się, gdzie przeglądarka internetowa zawija tekst w danym div.JavaScript: znajdź nasze miejsce do zawijania tekstu w div

Motywacją jest edytor WYSIWYG, który używa contenteditable. Użytkownicy zapisują tam tekst, a w zależności od szerokości edytowalnego pola, czcionki i innych czynników, zawija się w określonych lokalizacjach. Chciałbym wiedzieć, gdzie one występują.

Mogę myśleć tylko o bardzo hackowatych rozwiązaniach (np. Wstaw span wokół każdej postaci, zapętlaj te spany, uzyskaj ich własność offsetTop i zanotuj, kiedy się ona zmieni). Czy istnieje lepszy/standardowy sposób robienia tego?

+1

Co chce zrobić z informacją? Czy dodajesz elementy w punktach przerwania, czy po prostu musisz wiedzieć, ile przerw, itd.? – kthornbloom

+0

Chcielibyśmy użyć tej informacji, aby uzyskać taki sam wynik podczas renderowania treści do innych formatów. Innymi słowy, użytkownik edytuje zawartość w sieci i widzi linie łamiące się w określonych lokalizacjach. Następnie użytkownik przesyła dane na serwer. Serwer powinien renderować plik PDF, który wygląda jak najbardziej zbliżony. – Sjlver

+1

Istnieje wiele odpowiedzi na to pytanie w SO i na zewnątrz: https://github.com/xdamman/js-line-wrap-detector http://stackoverflow.com/questions/12887372/detect-browser-wrapped-lines- via-javascript –

Odpowiedz

1

Zrobiłem google i znalazłem to na przepełnieniu stosu, nie jestem pewien, czy to jest to, czego szukasz, ale daj mu przeczytać. Jest dość stary.

Finding line-wraps

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

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

Albo

document.getElementById('body').addEventListener('change', myFunction()); 
Powiązane problemy