2009-09-15 54 views

回答

10

我不認爲它有可能用這種方式使用JavaScript來控制鼠標。

但是,您可以使用JavaScript直接選擇文檔的某些部分。例如:

var h3s = document.getElementsByTagName("h3"); 
var range = document.createRange(); 
range.selectNode(h3s[0]); 
window.getSelection().addRange(range); 

會選擇第一個h3元素。

另請參閱:http://www.quirksmode.org/dom/range_intro.html瞭解有關建築範圍的更多信息。

要選擇文檔的整個身體,你可以使用:

var body = document.getElementsByTagName("body")[0]; 
var range = document.createRange(); 
range.selectNode(body); 
window.getSelection().addRange(range); 

要選擇的,比如說第三個字符時,文檔中的第四段,請嘗試:

var p4 = document.getElementsByTagName("p")[3].firstChild; 
var range = document.createRange(); 
range.setStart(p4, 2); 
range.setEnd(p4, 3); 
window.getSelection().addRange(range); 
+0

我也可以選擇,直到元素的中間..就像字母#3? 此外,你的例子能夠選擇讓我們說一個身體的元素,其中包含各種divs,字體等? – thedp 2009-09-15 11:06:59

+0

是 - 請參閱編輯的文章。 – Andy 2009-09-15 11:47:24

-3

據我所知,無法完成。你可以選擇的唯一文本是在一個表單元素(textarea,輸入文字等)

0
 
    /** 
    * Select text between 2 elements. Support selection of continuous elements. 
    * @param {Object} element1 begin element. 
    * @param {Object} element2 end element. 
    */ 
    function selectBetweenTwoElements(element1, element2) { 
     if (window.getSelection) { 
      /* all browsers, except IE 8 and IE 7 */ 
      var selection = window.getSelection(); 
      selection.removeAllRanges(); 
      var range = document.createRange(); 
      range.setStart(element1, 0); 
      range.setEnd(element2, 1); 
      selection.addRange(range); 
     } else { 
      /* works fine in IE 8/IE 7 */ 
      if (document.body.createControlRange) { 
       var range1 = document.body.createTextRange(); 
       range1.moveToElementText(element1); 

       var range2 = document.body.createTextRange(); 
       range2.moveToElementText(element2); 

       var range = document.body.createTextRange(); 
       range.setEndPoint("StartToStart", range1); 
       range.setEndPoint("EndToEnd", range2); 
       range.select(); 
      } 
     } 
    } 
相關問題