2012-09-06 37 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

相关问题