3

我在玩 contentEditable 和 execCommand,我正在努力做到这一点,以便在按下按钮时,

  • 如果在 contentEditable 中选择了文本,它将变为粗体

  • 如果在 contentEditable 中没有选择文本,则在按下按钮后在 contentEditable 中键入的任何文本都会加粗

我尝试使用以下 Javascript 命令:

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

但不幸的是,这只会使被选中的文本变为粗体;如果没有选择文本并且您在按下按钮后开始输入,则文本显示为非粗体。

我注意到,如果我在 contentEditable 中按 Ctrl+B,它会完全按照我的意愿完成,但我想使用 Javascript 来完成此操作(并且无需在 Javascript 中模拟 Ctrl+B)。

4

2 回答 2

2

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

于 2011-03-21T23:26:50.233 回答
0

Javascripts Range 可以检查选定的文本,请参阅此链接。您可以使用它来获取选定的文本(startnode、endnode、offset 等)。如果您希望新文本加粗,只需将其添加<p>到您在 css 中提供粗体的新创建中。但是,这可能不适用于 IE ......

于 2011-03-21T21:17:21.457 回答