contentEditable,execCommand,并强制新加入的文本加粗

时间:2011-03-21 21:09:28

标签: javascript contenteditable execcommand

我在使用contentEditable和execCommand,我正试图让它按下按钮,

  • 如果在contentEditable中选择了文字,则会变为粗体

  • 如果在contentEditable中没有选择任何文字,则按下按钮后在contentEditable中输入的任何文字都以粗体显示

我尝试使用以下Javascript命令:

 document.execCommand('bold', false, null);

但不幸的是,这只会导致选中的文字变为粗体;如果没有选择任何文本,并且在按下按钮后开始输入,则文本显示为非压缩。

我注意到如果我在contentEditable中按下Ctrl + B,它就会完成我想要完成的任务,但我想使用Javascript完成此操作(并且无需在Javascript中模拟Ctrl + B)。 / p>

2 个答案:

答案 0 :(得分:2)

实际上document.execCommand()调用完全符合您的要求(您可以通过从keydown事件处理程序调用它来证明这一点),我怀疑这是任何按钮或其他任何可能的效果用于触发问题的命令。

答案 1 :(得分:0)

Javascripts Range可以查看所选文本,请参阅this link。您可以使用它来获取所选文本(startnode,endnode,offset等)。如果您希望新文本为粗体,只需将其添加到您在css中以粗体显示的新创建的<p>中。但是,这可能不适用于IE ...