Подтвердить что ты не робот

Очистка содержимого в формате HTML для отображения в Flash?

Я хочу отображать содержимое в формате HTML из разных источников в приложении Flash Flex. Flash поддерживает форматирование HTML в текстовых полях, однако он очень ограничен по сравнению с веб-браузером. Существуют ли какие-либо скрипты, которые преобразуют обычный HTML-форматированный текст в формат, который может обрабатывать Flash? Мои конкретные варианты использования:

  • Отображение электронных писем в формате HTML в Flash
  • Отображение RTF файлов внутри Flash (после запуска RTF2HTML-преобразования на сервере)
  • Отображение случайного содержимого HTML, скопированного и вставленного из других источников во Flash.

Я открыт для кода, который выполняется либо на клиенте, либо на сервере, но сервер, вероятно, предпочтительнее.

4b9b3361

Ответ 1

Подмножество поддерживаемых html-тегов довольно плохое и не изменилось навсегда:

<a>, <b>, <br>, <font>, <img>, <i>, <li>, <p>, <textformat>, <u>

Это означает, что независимо от качества конверсии, html не может быть отображен как полностью предназначенный; вы также можете отказаться от значительной части стиля css, если вы замените неподдерживаемые теги на более простые.

Говоря, http://simplehtmldom.sourceforge.net/ (PHP) будет работать с некоторыми настройками и достаточно компетентен, чтобы справиться с недействительной разметкой (см. как вы обрабатываете контент из разных источников, я бы сказал, что эта функция сама по себе сохранит большую боль в долгосрочной перспективе), чем заменить

<h1>,...,<h6> => <b>
<strong>      => <b>
<em>          => <i>

а остальное содержимое в абзацы вы будете удивлены тем, насколько это было бы читаемо. Вы могли бы немного походить на это так:

<h1> => <b class="header1">

и добавьте некоторый css по мере необходимости (хотя поддержка flash css также очень ограничена)

Я спасал этот для пустыни - вы либо полюбите его, либо ненавидите, но это будет трюк. Предполагая, что ваше приложение развернуто в браузере (если нет, и я неправильно понял вас, спасите меня смущение и перестань читать здесь), вы можете использовать iframe для отображения вашего html, серьезно.

JS - связь довольно проста, и вы могли бы разместить ее над определенной областью своего приложения, создавая иллюзию, что она ее часть; просто не забудьте установить windowmode на флэш-объект/внедрить правильно, чтобы он не отображался поверх других элементов страницы, а затем увеличил индекс iframe z.

Я не удивлюсь, если это будет восприниматься как "уродливый" подход, но он красив внутри - вы получите дословную html и настоящую поддержку css. Что касается взаимодействия с пользователем, вы можете даже перехватить ссылки и т.д. В iframe и запросить действие из мувиклипа.

Ответ 2

Вы можете использовать HTMLPurifier и указать белый список тегов, который вы хотите поддерживать.

Ответ 3

AS3 HTML Parser Library не совсем то, что я ищу, поскольку она не конвертирует HTML, а вместо этого отображает ее внутри Flash, что означает, что он не будет доступен для редактирования. Но в некоторых случаях может оказаться полезным, что я хочу отображать и не редактировать текст.

Другой вариант - посмотреть на несколько примеров HTML, которые я хотел бы отображать, а затем написать regex, чтобы преобразовать их в формат, который ожидает Flash/TLF. Но я чувствую, что это может быть огромным делом, благодаря широкому диапазону HTML.