Силно/em вмъкване в различни браузъри с помощта на execCommand

Използвайки функцията contentEditable и execCommand, човек може да редактира/форматира съдържанието на определени части от страницата като това, което се използва във всички WYSIWYG уеб редактори. Съществуват обаче многобройни несъответствия в браузърите с внедряването на такава функция, които карат такива уеб редактори да ги обработват ръчно.

В моя случай IE използва елементи strong и em за командите Bold и Italic, което е точно това, което аз искам като мен след семантичните силен и em, а не тези във визуален стил на b, i и/или стилизиран span. Други браузъри обаче използват тези елементи във визуален стил и не предоставят начин за задаване на strong или em елементи.

Има ли начин да стане възможно използването на strong и em във всички браузъри? Нямам нищо против добавянето на нови команди за обработка такова нещо, стига да постигне приблизителни резултати до тези на IE. Освен това би било хубаво да можете да ги прилагате към пресичащи се вградени/блокови елементи, без да нарушавате браузърите (или поне да ги нарушавате по еднакъв начин). Да, мога да използвам някои от другите редактори, но се интересувам само от тази функция. Ще се радвам на всяка помощ.

Благодаря ти


person cria    schedule 20.11.2010    source източник
comment
Работя върху решение за това и ще публикувам тук, когато е готово.   -  person Tim Down    schedule 18.12.2010
comment
Готин Тим. Нямам търпение да видя как ще се справиш. Мерси човече.   -  person cria    schedule 28.12.2010
comment
Работата ми по това спря преди известно време. Оставих обхвата да пълзи и всичко избяга от мен. Ще се върна към него един ден.   -  person Tim Down    schedule 06.10.2012


Отговори (2)


Знам точно какво имаш предвид, защото току-що се сблъсках със същия проблем. Като търсите наистина усилено, ето нещо, което мисля, че помага (връзка в StackOverflow):

Използване на contentEditable във Firefox: 'удебелен' изобразява правилно, но html кодът е неправилен

За да го видите тук, той казва, добавяйки следния ред преди execCommand('bold'):

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

Опитах и ​​го поправих, като вмъкнах във Firefox 13.0.1 (преди това FF вмъкна "font-weight:bold"). Сега съм доста развълнуван.

person ATC    schedule 02.08.2012

Може би не съм разбрал, но можете да зададете em и strong на каквото искате, като използвате CSS.

strong{ font-weight:bold }
person Rob    schedule 16.12.2010
comment
Да, разбирате погрешно: въпросът е свързан с document.execCommand(), което е метод, който обикновено се използва в WYSIWYG редакторите за промяна на някои аспекти на съдържанието, което потребителят е избрал, като например удебеляване. - person Tim Down; 16.12.2010
comment
Като зададох описателен въпрос, се надявах да го изясня на другите. За съжаление не успях :) - person cria; 28.12.2010