2016-10-01 2 views
8

Я хотел бы узнать, где веб-браузер обернул текст в заданном div.JavaScript: найдите наш текст, где обтекание текста происходит в div

Мотивация для этого - редактор WYSIWYG, который использует 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

Я сделал google и нашел это в переполнении стека, не уверен, что это то, что вам нужно, но дайте ему прочитать. Он довольно старый.

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()); 
Смежные вопросы