2011-07-02 39 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