Я подозреваю, что он находится в состоянии, в котором он находится по нескольким конкретным причинам:
1.) Стандарт HTML5, который определяет его, не определяет, что он должен выводить, оставляя каждую реализацию решать самим.
2.) Редактор не знает, хотите ли вы точное или семантическое представление.Это часто компромиссы.
3.) Похоже, что Mozilla перетащила свой старый код Netscape Mail / Composer в свою реализацию designMode, а затем перетащила его в contentEditable.Он все еще использует те же пунктирные контуры и маленькие красные маркеры, которые существовали 10 лет назад, и я подозреваю, что огромное количество унаследованного кода.
4.) Похоже, что Internet Explorer сделал почти то же самое, а IE никогда не делалчто-нибудь правильно в первую очередь.Он по-прежнему тянет свое наследие в форме причуд и режимов «совместимости».
5.) На самом деле он используется только в системах CMS и в форумах / полях для комментариев и комментариев, и обычно они имеют довольно тяжелые обертки для реализации.Я не видел такого большого применения в других местах, особенно в «голых».
6.) Существует несколько успешных онлайн-текстовых процессоров и еще меньше приложений WYSIWYG или макетов страниц.Давление на создание точных редакторов просто не существует.Хуже того, Microsoft продает офлайновое программное обеспечение, такое как Word и Expressions, которое определенно пострадает от роста числа онлайн-редакторов, особенно высококачественных бесплатных.
7.) У Microsoft есть наследие создания инструментов, которые генерируют недействительные и раздутыеHTML-код, который все еще существует в Outlook 2010 и пакете Office.
8.) Иногда одна и та же команда выбора и редактирования может быть применима к нескольким возможным объектам, занимающим одно и то же пространство, и редактор никогда не узнаеткоторую ты хотел изменить.Кроме того, команда редактирования может привести к разделению элемента неопределенным или неожиданным образом (опять же, он не будет знать, что вы бы предпочли).
Я не верю, что contentEditable когда-либо будет так же хорош, как вырезание вашегособственный HTML или с помощью специального инструмента.Я бы просто сконцентрировался на запуске некоторых базовых инструментов восстановления (например, HTMLTidy) над результатом и назвал бы это днем.