6

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 で正しいテキストを完全にログに記録することですが、それは選択されません

4

1 に答える 1

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();
    }
}
于 2013-09-11T20:57:02.563 に答える