13

マウスを使用してページ上のテキストを強調表示するとします。JavaScript を使用して強調表示されたすべてのテキストを削除するにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

45

私は質問を少し異なって理解しました。選択したテキストをドキュメントから削除する方法を知りたいと思います。その場合は、次を使用できます。

function deleteSelection() {
    if (window.getSelection) {
        // Mozilla
        var selection = window.getSelection();
        if (selection.rangeCount > 0) {
            window.getSelection().deleteFromDocument();
            window.getSelection().removeAllRanges();
        }
    } else if (document.selection) {
        // Internet Explorer
        var ranges = document.selection.createRangeCollection();
        for (var i = 0; i < ranges.length; i++) {
            ranges[i].text = "";
        }
    }
}

ハイライト自体をクリアしたいだけで、ハイライトされているテキストを削除したくない場合は、次のようにする必要があります。

function clearSelection() {
    if (window.getSelection) {
        window.getSelection().removeAllRanges();
    } else if (document.selection) {
        document.selection.empty();
    }
}
于 2009-10-29T13:09:25.447 に答える
2

IE 4 と古い Netscape には、これを行うための方法がありました...もはや適切ではありません (サポートもされていません)。

あなたの最善の推測は、Javascript を使用してオブジェクトに focus() し、次に blur() を使用することです。これは、オブジェクトからクリックするのと同じように効果的です。

document.getElementById("someObject").focus();
document.getElementById("someObject").blur();
于 2009-10-29T12:25:05.430 に答える