Javascript 获取高亮显示/选定的文本

Javascript 获取高亮显示/选定的文本,javascript,jquery,textselection,Javascript,Jquery,Textselection,是否有可能获得网站段落中突出显示的文本,例如使用jQuery?获取用户选择的文本相对简单。使用jQuery没有任何好处,因为您只需要窗口和文档对象 function getSelectionText() { var text = ""; if (window.getSelection) { text = window.getSelection().toString(); } else if (document.selection && do

是否有可能获得网站段落中突出显示的文本,例如使用jQuery?

获取用户选择的文本相对简单。使用jQuery没有任何好处,因为您只需要
窗口
文档
对象

function getSelectionText() {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    return text;
}

如果您对同时处理
和texty
元素中的选择的实现感兴趣,可以使用以下方法。由于现在是2016年,我省略了IE所需的代码如果您使用的是chrome(无法验证其他浏览器),并且如果文本位于同一DOM元素中,则此解决方案有效:

window.getSelection().anchorNode.textContent.substring(
  window.getSelection().extentOffset, 
  window.getSelection().anchorOffset)

以这种方式获取突出显示的文本:

window.getSelection().toString()
当然还有对ie的特殊处理:

document.selection.createRange().htmlText

使用
window.getSelection().toString()


您可以在

上阅读更多内容是的,您可以使用简单的JavaScript代码片段来完成:

document.addEventListener('mouseup', event => {  
    if(window.getSelection().toString().length){
       let exactText = window.getSelection().toString();        
    }
}

如果{}-fork还有什么用?“控制”是关于什么的?@Dan:对不起,我错过了这个问题(不要这么认为提醒了我)。第二个分支是IE@TimDown,说“jQuery没有X”是非常容易的,因为当然,有了正确的插件,它可以用javascript在浏览器中做任何事情。在本例中,我们有jquery.selection()。说“也不应该”同样是错误的。我来这里是因为我一直在寻找这个。我有一个用例,jQuery是正确的解决方案。@Auspex:我有点明白你的意思,但我不同意。jQuery插件是一个依赖于jQuery的库;它本身不是jQuery。在选择处理的情况下,jQuery本身完全不提供任何东西(这是应该的,因为选择处理不是jQuery的目的),因此任何使用jQuery的解决方案都是在附带使用它。我已经知道您知道以下内容,@TimDown,但应该注意,这在Firefox中的
textarea
s上不起作用。这是一个.For IE>=10“
文档。IE10中删除了对选择的支持,并将其替换为
window.getSelection
”。来源:在各种浏览器(如Firefox)中,在多种情况下,此操作都会失败。值得注意的是,当前
getSelection()
无法处理Firefox、Edge(旧版)和Internet Explorer中
元素的内容
HTMLInputElement.setSelectionRange()
或selectionStart和selectionEnd属性可用于解决此问题。简单的javascript适合我。document.getSelection().anchorNode.data.substr(document.getSelection().anchorOffset,document.getSelection().focusOffset document.getSelection().anchorOffset)@RohitVerma:这只适用于包含在单个文本节点中的选择的简单情况,这并不能保证一定会发生。@Dipak您如何从您在文章中引用的博客复制社交共享功能?我不只是返回所选的字符串,而是尝试将该变量填充到twitter链接中。虽然是真的,但这与以前的答案有何不同?(关于这一点的其他答案的评论并不总是有效的,也适用于此处。)