Я вынужден использовать WYSIWYG-редактор в CMS, на которой публикуется наш веб-сайт, и поведение по умолчанию для пробелов - пустые <p></p>
теги (это ожидается).
FCKeditor.prototype.Version = '2.6' ;
FCKeditor.prototype.VersionBuild = '18638' ;
Это нормально, но большая проблема в том, что редактор, похоже, не распознает элементы HTML5 как независимые, блочные элементы и заключает в себе <section>
, <aside>
и другие теги HTML5 внутри <p>...</p>
контейнеров!
DOCTYPE
, используемые страницами CMS, - «XHTML Transitional», и я не могу это контролировать. Однако я объявил в своем пользовательском CSS, что все элементы HTML5, которые я использую, должны отображаться как блочные элементы, и я даже включил вспомогательный скрипт HTML5shiv.js, чтобы расширить поддержку этих элементов для старых браузеров.
Например:
This is a paragraph. <!-- using SHIFT+ENTER in the WYSIWYG -->
This should be a new line in the paragraph. <!-- using ENTER in the WYSIWYG -->
<section>
<article>Some block text</article>
</section>
становится:
<p>This is a paragraph.<br/> <!-- using SHIFT+ENTER in the WYSIWYG -->
This should be a new line in the paragraph.</p>
<p></p>
<p></p>
<p><section><article>Some block text</article></section></p>
как только нажата кнопка Сохранить.
Прежде всего, что будут делать современные и старые браузеры, когда они увидят <section>
внутри тега <p>
? Как они настраивают DOM для этой ситуации? Я исследовал окончательный вариант DOM на странице для всех современных браузеров, включая IE9 +, и они, похоже, игнорируют ошибочные теги контейнера <p>...</p>
и / или закрывают их до анализа элементов HTML5.
Однако при просмотре в браузере Android Mobile 2.1 (только 2.1) и IE7 и более ранних версиях поведение повсеместно.
Зная, что:
- Я не имею право изменять файлы FCKeditor, как В этом посте объясняется .
- Я не имею доступ к настройке редактора WYSIWYG, который использует CMS, и не обновляет его
- Я могу запускать только
<script type="text/javascript">
скрипты, нет PHP
разрешено .
Как решить эту проблему для тех старых браузеров, у которых возникают проблемы?