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 に答える