0

我需要pasteHTML()代替未突出显示的文本。我知道如果做类似的事情mySelectedText.createRange().pasteHTML()我会得到我想要的但是如何为未选择的文本设置范围?在这种情况下,我唯一拥有的只是光标/插入符号,它位于我想要突出显示和替换的行中。谢谢你的帮助。

更新:

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

|- 可能的插入符号位置。我需要突出显示插入符号所在的整行。未选择任何文本。

4

1 回答 1

0

我还不确定你真正需要什么。下面的(仅限 IE)代码选择插入符号/选择所在的行,并返回textRange包含该行的对象。

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;
}

此功能允许插入符号/字符/交叉线选择,并且如果有可用的选择,也适用于不可编辑的元素。

于 2012-09-07T16:53:44.810 回答