3

我希望这个文本在<div>页面加载时被突出显示(选择复制)。

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

我尝试了什么:

$(document).ready(function(){

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

});
4

2 回答 2

2

因此,如果我假设正确,您希望突出显示特定 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

资源

于 2013-09-04T11:10:06.903 回答
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/

于 2013-09-04T11:16:59.153 回答