我需要通过给它一个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);
}
奇怪的是,行console.log(rangeToSelect)
将完全记录IE 10中的正确文本,但将不会选择它。
答案 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();
}
}