Риск использования contentEditable в IE

Мы должны добавить базовый редактор HTML к нашему продукту. Поскольку в настоящее время мы поддерживаем только IE (большинство клиентов все еще используют IE 6), мне сказали использовать встроенные в Internet Explorer возможности редактирования XHTML - например, <div contentEditable="true"> как объяснено в " Редактировании веб-страницы" .

Помимо не работает в других браузерах. (Руководство не считает, что это является проблемой. Наши клиенты будут мириться с нашим программным обеспечением, работающим только с IE. Мы никогда не теряли денег из-за того, что наше программное обеспечение работает только в IE; большинство клиентов в любом случае в настоящее время разрешают только своим сотрудникам использовать IE6.)

Какие еще проблемы мы можем получить с contentEditable?


Обновить

Редактор HTML, который я написал с помощью "contentEditable", оказался очень трудным для получения надежности, со многими проблемами. Если бы мне пришлось сделать это снова, я бы очень настаивал на одном из многих решений с открытым исходным кодом (например, TinyMCE) или покупал в поддерживаемом редакторе HTML.

Нет сомнений в том, что очень опытный программист на jscript может заставить "contentEditable" работать хорошо при достаточном времени. Просто все примеры в Интернете выглядят так просто, пока вы не протестируете обычные операции, такие как вырезание / вставка из слова и попытка редактировать полученный HTML. (только то, что будет делать клиент)

(Просто найдите "contentEditable" в stackru, чтобы получить представление о проблемах, которые были у других людей)

6 ответов

Решение

Свойство contentEditable работает в Safari, Firefox 3 и Opera 9.

Поскольку манипулирование, несомненно, будет осуществляться с помощью выборок, вашей самой большой проблемой будет заставить выбор / диапазоны работать в разных браузерах ( см. Здесь).

Существуют также многочисленные небольшие ошибки в браузерах, которые могут вас укусить или не укусить. К ним относятся несовместимая чувствительность к регистру, несовместимые методы его повторного выключения (removeAttribute vs. установка в false).

Несмотря на эти недостатки, я считаю, что это работает довольно хорошо.

HTML 5 включает атрибут contenteditable, поэтому, похоже, он будет в IE еще долго.

Только что получил письмо от кого-то из команды IE

Хотя в принципе невозможно с уверенностью комментировать будущее, справедливо сказать, что я не знаю о каких-либо планах по удалению contentEditable, и, если он будет удален, это сломает МНОГО сайтов.

Как насчет использования решения с открытым исходным кодом, которое работает во всех основных браузерах?

TinyMCE

Есть и другие проекты, но я бы этим воспользовался.

Быстрый поиск в Google привел к появлению поста в блоге по некоторым (хотя и незначительным) проблемам contentEditable.

Я бы просто проверил, какой контент вы получаете обратно, так как вставка XSS-атак довольно проста в IE, если нет проверки добавленного HTML-контента.

contentEditable работает под Firefox 3. Я не знаю никаких проблем с contentEditable.

Другие вопросы по тегам