Риск использования contentEditable в IE - PullRequest
22 голосов
/ 29 января 2009

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

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

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


Обновление

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

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

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

Ответы [ 6 ]

11 голосов
/ 30 января 2009

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

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

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

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

6 голосов
/ 29 января 2009

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

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

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

6 голосов
/ 29 января 2009

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

TinyMCE

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

2 голосов
/ 29 января 2009

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

1 голос
/ 29 января 2009

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

1 голос
/ 29 января 2009

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

...