Выбранный текст внутри div

Я хочу, чтобы этот текст внутри <div> был выделен (выбран для копирования) при загрузке страницы.

<div id='sample_div'>This is sample text</div>

Что я пробовал:

$(document).ready(function(){

$('#sample_div').select();

});

Ответ 1

Итак, если я правильно предполагаю, вы хотите, чтобы текст внутри отдельного div был выделен.

function selectText(element) {
    var doc = document
        , text = doc.getElementById(element)
        , range, selection
    ;    
    if (doc.body.createTextRange) { //ms
        range = doc.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if (window.getSelection) { //all others
        selection = window.getSelection();        
        range = doc.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    }
}

Работа jsFiddle

Источник

Ответ 2

Изменение решения основано на текущем браузере, с более старой версией jQuery я использую $.browser, но теперь удаляется; проверить его IE и использовать правильную проверку кода, если document.body.createTextRange существует как:

$(document).ready(function () {
    selectText('sample_div');
});

function selectText(element) {
    var text = document.getElementById(element);
    if (document.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else {
        var selection = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    } 
}

Демо: http://jsfiddle.net/IrvinDominin/bKPcX/