【发布时间】:2013-01-11 07:36:58
【问题描述】:
这个问题几乎说明了一切。我使用hallo.js,它似乎使用<b> 和<i> 表示粗体和斜体。我的一些标记目前需要strong 和em 才能应用某些CSS 规则。我也更喜欢strong 和em,而不是b 和i,所以我想配置这个。
似乎没有任何关于此的文档 - 可以吗?
【问题讨论】:
这个问题几乎说明了一切。我使用hallo.js,它似乎使用<b> 和<i> 表示粗体和斜体。我的一些标记目前需要strong 和em 才能应用某些CSS 规则。我也更喜欢strong 和em,而不是b 和i,所以我想配置这个。
似乎没有任何关于此的文档 - 可以吗?
【问题讨论】:
如果它可能对某人有帮助:
我想达到同样的效果,我最终在保存之前对内容进行了预处理。 在 Python 中替换标签的示例:
content.replace('<b>', '<strong>').replace.('</b>', '</strong>')
您可以对可能要替换的任何其他标签或子字符串使用相同的技术。
【讨论】:
这无法完成,因为标记不符合 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_APIs
@987654327 @
http://www.sitepoint.com/the-tragic-comedy-that-is-rich-text-editing-on-the-web/
【讨论】:
document.execCommand() 就可以做到。例如,CKEditor 就是这样做的。