jWYSIWYG превращает переводы строки в <P> в IE9, но в <BR> в других браузерах
Я использую jWYSIWYG плагин jquery для добавления элементов управления в текстовые области в приложении.
Я обнаружил, что тот же код в IE превращает переводы строки в <P>
теги, но <BR>
в других браузерах (Firefox, Chrome, пока). В идеале я бы хотел, чтобы они все были <BR>
или, исключая это, сделайте их всех <P>
, Я по крайней мере хочу, чтобы это было последовательным.
Есть ли работа вокруг? Я вижу, что есть настройка конфигурации:
brIE
Логическое. Если true
, <br/>
будет вставлен для новой строки в IE.
К сожалению, он, похоже, ничего не делает, когда установлен.
1 ответ
Корень проблемы заключается в том, что редакторы WYSIWYG на основе браузера используют браузер для редактирования.
Базовый компонент редактора WYSIWYG - это просто стандартный элемент (например, <div>
) с contentEditable
флаг установлен. Вот и все. Браузер контролирует фактическое редактирование; код JavaScript не контролирует это, браузер. И разные браузеры реализуют это по-разному.
Вот почему вы получаете разные результаты в разных браузерах. В редакторе мало что можно с этим поделать. Вы даже обнаружите, что если вы загрузите контент, созданный в браузере, в другой браузер, он будет переформатирован так, как этого хочет новый браузер, часто даже без какого-либо реального редактирования.
Это произойдет со всеми браузерными редакторами WYSIWYG. Некоторые из них могут попытаться нормализовать различия в браузерах, но, как вы видели, с ограниченным успехом. И пользователь имеет некоторый контроль; например, браузеры часто по-разному реагируют на shift+return по сравнению с просто return для новых строк. Но это оставляет его в руках пользователя, который, возможно, не осознает необходимость сделать это (в конце концов, вы используете редактор wysiwyg, чтобы упростить для пользователя, а не сделать его более сложным).
В общем, лучшее, на что вы действительно можете надеяться - это нормализовать его после редактирования в коде на стороне сервера.