У меня есть страница с чем-то вроде этого:
<div id="editor" contenteditable="true">SomeText</div>
У меня есть самодельный редактор JS, который на самом деле выдает
document.execCommand(some_command,false,optional_value);
когда пользователь нажимает кнопку в редакторе. (Например, у меня есть простая, простая кнопка [Bold]).
Все хорошо, пока я применяю редактирование к части "SomeText". Например, выбор «Текст» с помощью мыши и нажатие кнопки [Полужирный] (что приводит к document.execCommand («полужирный», false, false);) приведет к:
<div id="editor" contenteditable="true">Some<span style="some-css-here">Text</span></div>
но когда я выбираю все содержимое div (в данном примере «SomeText») и нажимаю [Bold] в моем редакторе, FF не выдаст ожидаемый
<div id="editor" contenteditable="true"><span style="some-css-here">SomeText</span></div>
а точнее
<div id="editor" contenteditable="true" style="some-css-here">SomeText</div>
Обратите внимание, что атрибут "style" вошел в редактируемый div!
Почему это имеет значение для меня?
- Это потому, что после редактирования я хотел бы взять содержимое редактируемого div вместе со всеми стилями, форматированием и т. Д. И далее использовать его на странице. Но я не могу - весь стиль теперь находится внутри div.
Решение, когда мне рекомендуют извлекать стили из div, неприемлемо - div в течение своей жизни берет много стилей из других активных элементов страницы (интенсивное использование jQuery)
Итак, вкратце:
Как сказать FF никогда не трогать редактируемый div и применять все стили только к его внутреннему содержимому?
Искренне спасибо за ваше время.
(только что выдернул последние волосы, просматривая сайт разработчиков FF вместе со многими другими (((()