Javascript 如何从所选文本到页面末尾获取文本

Javascript 如何从所选文本到页面末尾获取文本,javascript,text,cursor,range,selection,Javascript,Text,Cursor,Range,Selection,我想得到从所选文本到页面末尾的所有文本,这意味着我们只看到页面上的文本。但当我尝试这个时,它也会得到标签'script','noscript'中的文本。。。以及页面上未显示的其他标签: function getTextFromCursor(){ count=0; var allText =""; if(window.getSelection){ var selection = window.getSelection(); var selRa

我想得到从所选文本到页面末尾的所有文本,这意味着我们只看到页面上的文本。但当我尝试这个时,它也会得到标签'script','noscript'中的文本。。。以及页面上未显示的其他标签:

function getTextFromCursor(){
    count=0;
    var allText ="";
    if(window.getSelection){
        var selection = window.getSelection();
        var selRange = selection.getRangeAt(0);
        var range = document.createRange();     
        range.setStart(selRange.startContainer, selRange.startOffset);
        var theBody = document.getElementsByTagName('body')[0];
        var lastEl = theBody.lastElementChild;
        range.setEndAfter(lastEl);      
        allText = range.toString();
    }
    return allText;
}  

我如何才能只获取页面上显示的文本?

范围添加到
选择中,并使用
选择.toString()

selection.addRange(range);
allText = selection.toString();
我的拉吉图书馆的图书馆可以帮上忙。它允许您在用户在页面上看到文本时或多或少地处理文本。有了它,你的例子就可以用

function getTextFromCursor() {
    var selection = rangy.getSelection();
    var selRange = selection.getRangeAt(0);
    var range = rangy.createRange();
    range.selectNodeContents(document.body);
    range.setStart(selRange.startContainer, selRange.startOffset);
    return range.text();
}

这将在浏览器之间产生不一致的结果:一些浏览器将给出与在范围上调用
toString()
相同的结果,另一些浏览器将返回类似于您在页面上看到的文本的结果。