我正在开发一个非常简单的富文本编辑器。我已经阅读过使用应用于iframe的designMode ='On',然后我用它来创建粗体文本:
nameOfiframe.document.execCommand('bold',false,null);
尽管它有效,但execCommand()使用b
标签代替strong
来制作粗体文字。我看了一些高级富文本编辑器,所有这些编辑器都使用了strong
而不是b
标记。
我有一个简单的方法来解决这个问题吗?或者execCommand()根本不好用?
谢谢!
答案 0 :(得分:4)
不幸的是,document.execCommand()
行为因浏览器而异。正如@ 1UnitedPower的回答所提到的那样,document.execCommand()
旨在用于表达而不是语义效果。
两种可能的选择是:
<b>
后,运行一些代码将<strong>
元素转换为document.execCommand()
元素。这似乎是更容易的选择。如果这对您来说很重要,那么在进行转换时,您需要一些方法来保留选择。答案 1 :(得分:0)
execCommand
不接受html-tag-name作为其第一个参数,而是接受MIDAS命令。
有关可用命令的列表,请参阅https://developer.mozilla.org/en-US/docs/Midas。
希望这种行为,因为它针对的是一个所见即所得的目标。 WYSIWYG不是用于语义,而是用于文体目的。您无法确定粗体文本背后的语义。
但请查看insertHtml
和styleWithCSS
命令。