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 回答