Стиль текста, влияющий на весь сайт - PullRequest
1 голос
/ 09 февраля 2010

У меня есть ввод, чтобы пользователь мог вводить либо HTML, либо обычный текст. Например, когда пользователь копирует и вставляет текст из MS Word, он генерирует странный HTML-код. Затем, когда вы просматриваете эту тему, вы можете увидеть, как влияет стиль всей страницы. Я действительно не знаю, есть ли в сгенерированном html закрытые теги или что-то в этом роде, но похоже, что так оно и есть, и стиль страницы страдает.

Кто-нибудь знает, как "изолировать" html этого div (или каким-либо другим контейнером) от стиля всей страницы?

Ответы [ 4 ]

3 голосов
/ 09 февраля 2010

Если не показывать содержимое в IFRAME, вы не можете этого сделать. В этой ситуации я обычно применяю логику разметки тегов к содержимому по мере его поступления. Вы действительно не хотите разрешать произвольный HTML с точки зрения безопасности, но даже если вам все равно, что вводят ваши пользователи, вам следует убирать недопустимые теги HTML (Word имеет привычку создавать теги со странными вещами, похожими на пространства имен, такие как o: p) и запускать что-то вроде Tidy над результатом, чтобы убедиться, что каждый тег правильно закрыт. Существует множество библиотек Tidy для .NET; вот один .

Вот быстрое вырезание и вставка того, как я делал это в прошлом. Обратите внимание, что класс реализует интерфейс из проекта, в котором я его использовал, но вы получите общее представление.

0 голосов
/ 09 февраля 2010

Если бы я выбрал все, кроме базового форматирования (например, жирный, курсив) и использовал Tidy . Это то, что я в итоге делаю, я раздеваю и конвертирую все стили слова в CSS в <strong>, <em> и т. Д.

0 голосов
/ 09 февраля 2010

Вы можете дезинфицировать вход или отобразить его в IFrame.

0 голосов
/ 09 февраля 2010

Копирование текста из слова может включать <style> теги. Единственный верный способ изолировать эти стили - поместить элемент управления вводом в <iframe>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...