2011-07-02 33 views
5

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

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

回答

7

你可以,但它需要是选择。因此,换句话说,做到以下几点:

  • 存储当前选择
  • 制作基础上,Range
  • 一个新的选择执行execCommand
  • 恢复以前的选择

你可以从范围(非IE浏览器)创建一个selection,具体如下:

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

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

+0

听起来不错。一个问题(因为我是JavaScript的初学者),你会如何做出新的选择?谢谢。 – Joshua

+1

@Joshua我用一个小例子更新了我的答案 – Niklas

+0

谢谢,现在几乎完美。 :) – Joshua