Кросс-браузерная сильная / em вставка с использованием execCommand - PullRequest
2 голосов
/ 21 ноября 2010

Используя contentEditable и функцию execCommand , можно редактировать / форматировать содержимое определенных частей страницы, как то, что используется во всех веб-редакторах WYSIWYG.Однако существует множество несоответствий браузеров с реализацией такой функции, из-за которых такие веб-редакторы обрабатывают их вручную.

В моем случае IE использует strong и em элементов для команд Bold и Italic , что именно то, что я хочу, как я хочу после семантических strong и em и не в визуальном стиле b , i и / или в стиле span .Тем не менее, другие браузеры используют эти элементы в визуальном стиле и не предоставляют способ установить элементы strong или em .

Есть лиспособ сделать возможным использование strong и em во всех браузерах? Я не против добавить новые команды для обработки таких вещей, пока они достигают приблизительногорезультаты в IE.Кроме того, было бы неплохо иметь возможность применять их к пересекающимся элементам inline / block, не ломая браузеры (или, по крайней мере, ломая их одинаковым образом).Да, я могу использовать некоторые другие редакторы, но меня интересует только эта функция.Буду признателен за любую помощь.

Спасибо

Ответы [ 2 ]

1 голос
/ 02 августа 2012

Я точно знаю, что вы имеете в виду, потому что я столкнулся с той же проблемой.Похоже, что при поиске действительно сложно, вот что мне помогает (ссылка в StackOverflow):

Использование contentEditable в Firefox: «bold» отображается правильно, но HTML-код неверен

Чтобы увидеть это здесь, он говорит, добавив следующую строку перед execCommand ('bold'):

document.execCommand('StyleWithCSS', false, false);

Я попытался и это исправило, вставив в Firefox 13.0.1 (до этого FF вставлял«начертание шрифта: жирный»).Я очень взволнован сейчас.

0 голосов
/ 16 декабря 2010

Возможно, я неправильно понимаю, но вы можете настроить em и strong на что угодно, используя CSS.

strong{ font-weight:bold }
...