Contenteditable сброс цвета текста после foreColor был использован без сброса других стилей

изменение цвета текста текста в contenteditable div легко-просто называется document.execCommand("foreColor",false,"#FFF") изменить цвет текста на белый.

однако я не могу найти способ сбросить этот цвет обратно к его значению по умолчанию (или к значению родительского элемента). document.execCommand("removeFormat",false,null) работает отлично, за исключением того, что он также удалит любые жирные или курсивные стили, что не то, что я хочу. Просто установка цвета на черный работает, кроме того, если у вас есть ссылка в выборе (которая должна оставаться неизменной цвет.)

это возможно?

2 ответов


у меня есть успех со следующим:

document.execCommand("removeFormat", false, "foreColor");

Кажется (пока), что removeFormat можно понять, чтобы удалить только форматирование, созданное определенной командой.


вот частичный ответ, но я все еще ищу решение для Chrome:

в IE9, вы можете использовать следующее:

document.execCommand("foreColor",false,"")

в Firefox, вы можете использовать это:

document.execCommand("foreColor",false,"inherit")

но в Chrome передача нулевой / пустой строки ничего не делает, а передача "наследовать" приводит к установке цвета текста на " rgba(0, 0, 0, 0)" -- прозрачный черный. Ясно, что это ошибка. Я хотел бы увидеть более надежный кросс-браузерный способ сделать это.