Эквивалент W3C для внутреннего HTML

я работаю с CMS, созданной несколько лет назад в asp/vbscript (старый asp), и пока мы не выпустим dot net cms (должно быть скоро), мы застряли с этим, но на данный момент я пытаюсь сделать его немного более w3c соответствует ... в настоящее время наша cms только для IE ... в редакторе страниц

вы можете переключаться между состоянием предварительного просмотра и режимом html, и редактор использует innerHTML для режима подкачки, но этот innerhtml делает все теги в шапке и делает все теги <LI>...</LI> такими <LI>...

нет закрывающих тегов, так как это было необязательным... я могу захватить все теги html и ключи атрибутов, используя регулярное выражение, и поменять их местами в нижнем регистре, но мне было интересно, знает ли кто-нибудь более простой способ сделать это... к сожалению, я попытался добавить строгий режим doctype так как код редактора действительно старый, то весь редактор просто развалится...

надеюсь, мы скоро выпустим нашу новую CMS, но пройдет некоторое время, прежде чем мы переведем все наши сайты на новую CMS, поэтому до тех пор я пытаюсь улучшить наш старый код.

Есть ли какой-либо эквивалент innerHtml, который сделал бы код более совместимым с w3c AKA, чтобы сохранить закрывающий тег для моего <li></li>, поэтому я не начинаю анализировать свой ccode с помощью регулярного выражения и заменяю? ты


person Lil'Monkey    schedule 02.09.2009    source источник
comment
Итак, в чем вопрос?   -  person Steerpike    schedule 02.09.2009
comment
любой эквивалент innerhtml, поэтому мне не нужно анализировать мой код с помощью регулярных выражений, чтобы заменить мои теги?   -  person Lil'Monkey    schedule 02.09.2009
comment
innerHTML берет все, что вы ему даете, он не волшебным образом превращает все имена элементов в заглавные буквы. Итак, еще раз, в чем вопрос?   -  person kdgregory    schedule 02.09.2009
comment
На самом деле нет точной стандартной альтернативы W3C для innerHTML. innerHTML в настоящее время стал стандартом де-факто и больше не является собственностью некоторых браузеров. Это также кодифицируется в предстоящем (в настоящее время черновом) HTML5 - w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0 Другими словами, использование innerHTML не так плохо, как может показаться.   -  person kangax    schedule 02.09.2009
comment
извините, я не могу напечатать: P (французский) я имею в виду спасибо за ответ, я думаю, я начну анализировать свой html, используя регулярное выражение, и исправлю проблему в моем редакторе.   -  person Lil'Monkey    schedule 02.09.2009
comment
kdgregory... сделайте div... поместите в него немного html, а затем вызовите alert(your_div.innerHTML), и вы увидите, что произойдет   -  person Lil'Monkey    schedule 02.09.2009


Ответы (1)


Если я вас правильно понял, ответ «не делайте этого», если вы не собираетесь вносить какие-либо изменения в код в режиме «Предварительный просмотр».

Если этот предварительный просмотр является простым предварительным просмотром (без WYSIWYG), вы должны сделать это следующим образом:

При переключении в режим «Предварительный просмотр» скройте редактор (….style.display='hidden' или что-то подобное), оставив внутри неизмененный код, и скопируйте его в innerHTML элемента предварительного просмотра.

При обратном переключении вы просто отбрасываете код из innerHTML и снова отображаете редактор со старым содержимым.

person Michał Górny    schedule 02.09.2009
comment
ty для ответа, к сожалению, проблема заключается в том, что пользователи могут редактировать свой html в режиме HTML, и как только они переключатся обратно, я должен передать режим предварительного просмотра с новым html, все еще действительно хороший ответ - person Lil'Monkey; 02.09.2009
comment
Если под «режимом HTML» вы подразумеваете режим с редактором, то проблем нет. Вы можете снова получить элемент предварительного просмотра и заменить его атрибут innerHTML новым; то есть обновить его так же просто, как: document.getElementById('preview').innerHTML = document.getElementById('editor').value; - person Michał Górny; 03.09.2009