Как избежать вставки копии WebKit contentEditable, приводящей к нежелательному CSS?

У меня есть a <div> это имеет contentEditable="true".

Когда я контент вставки копии в доступном для редактирования отделении, вставленный текст перенесен в большое количество нежелательного CSS.

Например, это: <p>text text</p> становится:

<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 17px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">text text</p>

Я понимаю, что браузер (Google Chrome в текущем случае) пытается быть умным и все, но что я заканчиваю, абсолютно несоответствующий и нежелательный CSS.

Там какой-либо путь состоит в том, чтобы сказать основанному на WebKit браузеру не генерировать это?

7
задан Martin Tajur 22 July 2010 в 06:12
поделиться

1 ответ

У меня была та же проблема, плюс проблема в том, что каждый браузер создает свой HTML. Поэтому я написал JavaScript-порт библиотеки Sanitize: Sanitize.js

Sanitize.js — это дезинфицирующее средство HTML на основе белого списка, написанное на JavaScript. При наличии списка допустимых элементов и атрибутов Sanitize.js удалит весь неприемлемый HTML-код из узла DOM.

Взгляните на пример, где я фиксирую событие paste и затем обрабатываю HTML.

8
ответ дан 7 December 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: