IE10中的Html /文本选择

时间:2013-09-11 20:02:51

标签: javascript internet-explorer-10 textselection

我需要通过给它一个ID选择器来选择一系列HTML。我下面的内容在Chrome和Firefox中效果很好,但在IE 10(标准模式)中却没有。 (IE的旧版本不关心这个)

function selectElementContents(elementId) {
    var elemToSelect = document.getElementById(elementId);
    var selection= window.getSelection();
    var rangeToSelect = document.createRange();
    rangeToSelect.selectNodeContents(elemToSelect);
    //console.log(rangeToSelect);
    selection.removeAllRanges();
    selection.addRange(rangeToSelect);
}

演示http://jsfiddle.net/7Jayc/

奇怪的是,行console.log(rangeToSelect)将完全记录IE 10中的正确文本,但将不会选择它。

1 个答案:

答案 0 :(得分:2)

这适用于所有浏览器:

function selectElementContents(elementId) {
    var elemToSelect = document.getElementById(elementId);

    if (document.createRange) {     // all browsers but IE
        var selection = window.getSelection();
        var rangeToSelect = document.createRange();
        rangeToSelect.selectNodeContents(elemToSelect);
        //console.log(rangeToSelect);
        selection.removeAllRanges();
        selection.addRange(rangeToSelect);
    }
    else {      // IE
        var rangeObj = document.body.createTextRange();
        rangeObj.moveToElementText(elemToSelect);
        rangeObj.select();
    }
}