Как настроить hallo.js для использования ‹strong› вместо ‹b›?

Вопрос в значительной степени говорит сам за себя. Я использую hallo.js и, похоже, использует <b> и <i> для полужирного и курсивного начертания. Некоторые из моих разметки в настоящее время требуют strong и em для применения определенных правил CSS. Я также предпочитаю strong и em в целом b и i, поэтому я хотел бы настроить это.

Кажется, что нет никакой документации по этому напрямую - можно ли это сделать?


person prodigitalson    schedule 28.01.2013    source источник


Ответы (2)


Это невозможно сделать, так как разметка не подходит для hallo.js или любого другого редактора форматированного текста. Они просто запускают вставку разметки, но вставка выполняется браузером. Вы получите несколько разные результаты из разных браузеров. Обходной путь возможен только изменением разметки в конце.

Изменить для указания на документы по вопросу комментария: проблема в том, что это поведение браузеров, поскольку IE изобрел режим проектирования, не являясь стандартом. Whatwg написал это в стандарте для HTML5. Чтобы получить больше информации по самой теме, прочитайте
http://www.quirksmode.org/dom/execCommand.html
http://dev.opera.com/articles/view/rich-html-editing-in-the-browser-part-1/
http://www.thismuchiknow.co.uk/?p=64
http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-contenteditable.html
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
http://www.w3.org/wiki/Web_Editing_API
http://annevankesteren.nl/2005/07/contenteditable
http://www.sitepoint.com/the-tragic-comedy-that-is-rich-text-editing-on-the-web/

person Andreas    schedule 03.04.2013
comment
Можете ли вы указать мне некоторые документы, которые проясняют это? Я не понимал, что фактическая разметка была внутренней операцией браузера, я думал, что только средство редактирования. - person prodigitalson; 04.04.2013
comment
Это можно сделать, если вы сами манипулируете DOM, а не полагаетесь на document.execCommand(). Например, это делает CKEditor. - person Tim Down; 08.04.2013
comment
@Tim Down: Нет, это невозможно, потому что вопрос был не в программировании собственного редактора форматированного текста, а в использовании hallo.js, который использует execCommand. Вы правы в том, что упоминание любого другого редактора форматированного текста некорректно для тех, кто напрямую манипулирует DOM. - person Andreas; 09.04.2013

В случае, если это может помочь кому-то:

Я хотел добиться того же, и в итоге я предварительно обработал контент перед его сохранением. Пример замены тегов для в Python:

content.replace('<b>', '<strong>').replace.('</b>', '</strong>')    

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

person Jordi    schedule 14.10.2014