2012-09-06 32 views
0

我需要​​而不是突出顯示的文本。我知道,如果像mySelectedText.createRange().pasteHTML()那樣做,那麼我會得到我想要的,但如何使範圍沒有選定的文本?在這種情況下,唯一的事情就是光標/插入符號,它代表我想要突出顯示並替換的行。謝謝你的幫助。在IE中創建範圍,無需選擇或突出顯示

更新:

This is one line. 
|This is ano|ther line.| 

| - 可以插入符位置。我需要突出顯示整個行,哪裏是脫字符。沒有文字被選中。

+0

需要更多信息,或許頁面中的選定文本比選擇內容更多。您想要包含在您的選擇中的未選定文本的內容和位置?請提供這些選擇的小型HTML片段。 – Teemu

回答

0

我還不確定你真正需要什麼。下面的(IE-only)代碼選擇插入/選擇所在的行,並返回包含行的對象。

selectLine = function() { 
    var range = document.selection.createRange(), 
     origTop = range.offsetTop, 
     origHeight = range.boundingHeight;  
    range.moveToElementText(range.parentElement()); 
    while (range.offsetTop !== origTop) { 
     range.moveStart('character', 1); 
    } 
    while (range.boundingHeight !== origHeight) { 
     range.moveEnd('character', -1); 
    } 
    range.select(); 
    return range; 
} 

此功能允許插入符號/字符/交叉線選擇,並且還與不可編輯的元素,如果有可用的選擇。

+0

謝謝! – Halfist

相關問題