Xpoint
   [напомнить пароль]

Textarea to div

Метки: [без меток]
2009-01-04 19:15:49 [обр] Noxvile[досье]

Подскажите как заставить переносы в textarea и div работать идентично?

Демонстрация проблемы — http://vkartinkax.ru/textarea2div.htm

Спасибо за внимание к проблеме.

спустя 5 часов [обр] AB...(56/236)[досье]
А вы просто меняйте пробел пришедший с textarea на  
спустя 11 часов [обр] Noxvile[досье]
К сожалению, если все пробелы менять на   то в div'e все будет в одну строчку т.е. текст будет считаться цельным как одно большое слово.
спустя 2 часа 39 минут [обр] Thirteensmay(15/157)[досье]
Поставить атрибут textarea wrap='off', а в диве использовать преформатирование (<pre> или white-space: pre). Это выключит в textarea автоперенос и "сравняет" ее с преформатированным div. Если же автоперенос textarea жизненно необходим то можно попробовать wrap='physical' ?
спустя 4 часа 54 минуты [обр] Noxvile[досье]
Автоперенос жизнено необходим) как в textarea, так и в div'e :(
wrap='physical', если я не ошибаюсь, — значение поумолчанию.
все это нужно для UGC(контента, генерируемого пользователями) на принципе WYSIWYG.
и вот это обстоятельство с разными принципами переноса прям меня очень сильно обламывает (
спустя 2 часа 29 минут [обр] balou(23/23)[досье]
Noxvile[досье], а какое отношение textarea имеет к WYSIWYG ?
спустя 19 минут [обр] Noxvile[досье]
balou[досье], Пользователь должен получать в div'e 1 в 1 то, что он во время редактирования видел в textarea со всеми стилями (ширина, высота, переносы и т.д. соответствовали). Именно как есть.
спустя 2 часа 27 минут [обр] balou(23/23)[досье]

Noxvile[досье], пример Ваш работает не везде. Он ведет себя "правильно" в FF и почему то в Opera. MSIE, Safari и Chrome показывают одинаковое форматирование в textarea и div.

Если заменить textarea на div c CONTENTEDITABLE, то наверное проблема отпадёт вовсе.

спустя 12 часов [обр] Thirteensmay(15/157)[досье]
Noxvile[досье] Хм, то ли я неправильно понял что есть physical, то ли оно тупо не работает, ну да бог с ним. Если есть возможность заменить textarea на div как сказано в предыдущем посте то оно наверное будет лучше всего. Ну а если нет, то раз автопереносы жизненно необходимы, получается что преформатирование отпадает. Тогда наверное только один вариант - дедовским методом, как сразу было сказано заменять все пробелы на &nbsp; только не просто на &nbsp; а на &nbsp;<wbr> чтобы переносилось, ну и переводы строк на <br> тоже. В принципе должно работать, но лучше наверное все же будет заменить на div, оно вроде как и проще и визивигнее получается, есть конечно и свои минусы, проверка орфографии например, но это вроде мелочи.
спустя 11 часов [обр] Noxvile[досье]
balou[досье], Thirteensmay[досье] спасибо большое за время, уделенное моей пробелеме.
contentEditable="true" кажется неплохим решение.
небольшой недостаток — аттрибут не проходит валидацию, но он определенно перспективен. в html 5 с большим энтузиазмом его приняли. более неприятный момент в том, что FF 2 не позволяет редактировать div.
contentEditable для Gecko.
вероятнее всего от этого буду идти и как-то решать порблему касательно FF2.
<wbr> было бы тоже неплохим и интересным решением, но похоже тэг действительно устарел.
спустя 9 минут [обр] Thirteensmay(15/157)[досье]
На FF2 можно спокойно положить. Каковы альтернативы <wbr> (shy не в счет т.к. ставит черточки ;)) почему устарел ?
спустя 1 час 47 минут [обр] Noxvile[досье]
где-то 4-5% пользовательских браузеров многовато чтобы класть. но сейчас с вашими советами стало проще, и я уверен что-нибудь придумаю дабы не игнорить FF2 пользователей.
согласен wbr полезный тег, но в 4ом хтмл о нем не упоминается.
http://www.w3.org/TR/html4/index/elements.html
еще конечно же nbsp;<wbr> не самый сказочный код для поисковиков.
спустя 11 часов [обр] Thirteensmay(15/157)[досье]
понятно, просто есть предположение что через полгода-год от этих 4-5% ничего не останется.
спустя 3 часа 42 минуты [обр] Noxvile[досье]
вообщем-то да, согласен
спустя 4 дня [обр] Илья Лебедев aka WingedFox(29/65)[досье]

Noxvile[досье]
Я развлекался с этим в другом контексте - вычисление пиксельных координат курсора в поле ввода. Тем не менее, решение вполне рабочее и для описанной задачи.

http://svn.debugger.ru/repos/j......ons/trunk/documentselection.js
начиная со строчки

if (!offsetCalculator) {
спустя 9 дней [обр] Thirteensmay(15/157)[досье]
Кстати, на всякий случай, вместо <wbr>, переносимую строку из нескольких пробелов можно сделать "&nbsp &nbsp &nbsp", т.е. перемежая неразрывные и обычные пробелы, разве что замена последовательности обычных пробелов на такие перемежающиеся будет слегка сложнее чем обычный replace.
Powered by POEM™ Engine Copyright © 2002-2005