使用execCommand进行跨浏览器强/ em插入

时间:2010-11-20 21:10:28

标签: javascript cross-browser contenteditable execcommand

使用 contentEditable 功能和 execCommand ,可以编辑/格式化页面某些部分的内容,就像所有WYSIWYG网页编辑器中使用的内容一样。但是,有许多浏览器与此类功能的实现不一致,这导致这些网络编辑人员手动处理它们。

就我而言,IE使用 em 元素作为 Bold Italic 命令,这是正如我在语义 em 之后所想要的那样,而不是 b i <的视觉风格/ em>,和/或样式 span 。但是,其他浏览器使用这些视觉样式元素,并且不提供设置 em 元素的方法。

是否有办法在所有浏览器中使用 strong em 我不介意添加新的命令来处理这样的事情,只要它实现IE的近似结果。此外,能够将它们应用于交叉的内联/块元素而不破坏浏览器(或者至少以相同的方式打破它们)将是漂亮。是的,我可以使用其他一些编辑器,但我只对这个功能感兴趣。我将不胜感激任何帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

我确切地知道你的意思,因为我遇到了同样的问题。通过努力搜索,我认为这是有帮助的(StackOverflow中的链接):

Using contentEditable in Firefox: 'bold' renders correctly, but html code is incorrect

要在此处查看,它说,在execCommand('bold')之前添加以下行:

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

我尝试并修复它,在Firefox 13.0.1中插入(在此之前,FF插入“font-weight:bold”)。我现在很兴奋。

答案 1 :(得分:0)

也许我误会了,但你可以使用CSS将em和strong设置为你想要的任何东西。

strong{ font-weight:bold }