execCommand on Range

时间:2011-07-02 10:20:27

标签: javascript webkit execcommand

我一直在文档上调用execCommand以使所选文本变为粗体或设置其颜色。但最近我需要在某个范围内使用execCommand,而不是选定的文字。

我可以这样做,如果是这样的话?

1 个答案:

答案 0 :(得分:7)

你可以,但它需要是选择。换句话说,请执行以下操作:

  • 存储当前选择
  • 根据Range
  • 进行新选择
  • 执行execCommand
  • 恢复上一个选择

您可以使用以下内容从范围(非IE浏览器)创建selection

 var selection = window.getSelection();
 selection.removeAllRanges();
 selection.addRange(range);

使用IE,您可以直接在execCommand个对象上执行TextRange,因此不需要整个过程。