Javascript 如何从所选文本到页面末尾获取文本
我想得到从所选文本到页面末尾的所有文本,这意味着我们只看到页面上的文本。但当我尝试这个时,它也会得到标签'script','noscript'中的文本。。。以及页面上未显示的其他标签: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
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()
相同的结果,另一些浏览器将返回类似于您在页面上看到的文本的结果。