Задать вопрос

Как перенести текст на новую страницу?

Добрый день!
Пишу редактор на js
При достижении высоты дива в 250 пикселей у меня срабатывает такой код:

js:
$(document).on('keypress', '.page', function(){
         var pageId = parseInt($(this).attr('id'));
	 pageId = pageId + 1;
	 $('.edit').append('<div class="page" id="' + pageId + '" style="width: 594px;" contenteditable></div>');
	 $('#' + pageId).focus();
});


html:
<div class="edit" id="edit" >
	<div class="page" id="1" style="width: 594px;" attr-height="0" contenteditable>
		<div>Многие думают, что Lorem Ipsum - взятый с потолка псевдо-латинский набор слов, но это не совсем так. Его корни уходят в один фрагмент классической латыни 45 года н.э., то есть более двух тысячелетий назад. Ричард МакКлинток, профессор латыни из колледжа Hampden-Sydney, штат Вирджиния, взял одно из самых странных слов в Lorem Ipsum, "consectetur", и занялся его поисками в классической латинской литературе.</div>
	</div>
</div>


css:
@media print {
	 .page {
	     page-break-before:always;
	 } 
}


Создаю новый див с разрывом страницы для печати, т.е. по сути создаю новую страницу как в ворде.
Так вот меня интересует, если пользователь нажимает "enter" и создается разрыв страницы, то курсор у меня перескакивает на новую страницу, но вот что не могу понять, так как перенести текст, который был под курсором. У меня задача сделать как в ворде перенос текста на новую страницу при достижении высоты.
Подскажите пожалуйста.
  • Вопрос задан
  • 8605 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Anonym
@Anonym
Программирую немного )
Простых решений вашей задачи нет.
В любом случае надо будет получать позицию курсора, вырезать всё что за ним и вставлять в другой div, а при backspace делать всё наоборот. Это не самый лучший вариант. Предлагаю пересмотреть архитектуру - хранить всё в одном div, а разбиение по страницам сделать с помощью вставки разрыва.

Вот немного улучшил ваш код, но задачу не решил: jsfiddle.net/j6G4V
Ответ написан
Комментировать
@zhogar
Нажать Enter, ну или Ctrl + Enter, это смотря какой редактор.
По моему в разделе переменных проще задать текстовую переменную, туда поместить необходимый текст и уже с этой переменной работать.
Ответ написан
@zhogar
Я не пойму что Вам конкретно нужно, но попробуйте тег </ br> в месте переноса строки.
Ответ написан
@itlogunov Автор вопроса
Так я ушел с одного дива из-за невозможности отслеживать высоту страниц
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы