1

有谁知道如何在 javascript 中选择 IE8 中的节点(元素)?不使用第三方库是首选。

在 IE9 中你可以这样做:

var sel = window.getSelection();
sel.removeAllRanges();
var range = document.createRange();
range.selectNode(node);
sel.addRange(range);

如何在 IE8 中做到这一点?

4

2 回答 2

2

这是我使用的代码,它应该可以全面工作:

    var sel, range;
    if(window.getSelection && document.createRange) {
        range = document.createRange();
        range.selectNodeContents(node);
        sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);

    } else if(document.body.createTextRange) {
        range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    }
于 2012-10-18T14:30:33.547 回答
2

对于较旧的 IE,它是这样的,提供node的是一个元素:

var range = document.body.createTextRange();
range.moveToElementText(node);
range.select();

有关完整的跨浏览器解决方案,请参阅

https://stackoverflow.com/a/2044793/96100

于 2012-10-18T14:24:19.780 回答