Чистим HTML-код при вставке текста из MS Word в HTML5 WYSIWYG редактор (contenteditable)
5 мин
Здравствуйте!
При написании своего WYSIWYG редактора возникла проблема копирования текста из Ворда. Собственно проблем три:
В общем, для решения этих проблем, был написан jquery-плагин, полный исходный код которого доступен в конце статьи. Пример использования:
Плагин вешается на событие keyup и проверяет, является ли исходный код внутри редактора вставленным из Ворда, если да, то запускается функция очистки. В результирующем html прибивается все что только можно – неразрывные пробелы, атрибуты style и align, теги span, все Mso-классы, пустые параграфы.
Детали реализации под катом.
UPD Демо на CodePen
При написании своего WYSIWYG редактора возникла проблема копирования текста из Ворда. Собственно проблем три:
- Ворд вставляет много мусорного html кода, который необходимо чистить
- Для представления списков Ворд почему-то использует параграфы вместо тегов UL и LI
- Собственно как определить, что вставленный текст является вставленным из Ворда.
В общем, для решения этих проблем, был написан jquery-плагин, полный исходный код которого доступен в конце статьи. Пример использования:
$(‘#editor’). msword_html_filter();Плагин вешается на событие keyup и проверяет, является ли исходный код внутри редактора вставленным из Ворда, если да, то запускается функция очистки. В результирующем html прибивается все что только можно – неразрывные пробелы, атрибуты style и align, теги span, все Mso-классы, пустые параграфы.
Детали реализации под катом.
UPD Демо на CodePen




Техника – это способ справиться с заданием, и у нас, разработчиков и дизайнеров фронтэнда, этих способов бывает достаточно много. При это, будучи погруженными в рутинную работу, мы порой не всегда замечаем как стремительно меняется окружающая нас сфера. В период с 2002 по 2010 годы сообщество фронтэнд-разработчиков буквально покрывалось язвами избыточного кода и ресурсов, от которых страдали и работа сайтов, и удобство их использования. Чтобы с этим справиться, мы придумали уйму хаков, трюков и уловок под кодовым названием «техника». Мы по-прежнему продолжаем выполнять поставленные перед нами задания, просто используем не самые эффективные способы.








