Obter o texto realçado / selecionado

É possível obter o texto realçado em um parágrafo de um site, por exemplo, usando jQuery?

    Obter o texto que o usuário selecionou é relativamente simples. Não há nenhum benefício a ser obtido envolvendo o jQuery, já que você não precisa de nada além dos objects window e document .

     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; } 

    Se você estiver interessado em uma implementação que também lidará com seleções nos elementos e texty , poderá usar o seguinte. Já que agora é 2016, estou omitindo o código necessário para o IE <= 8, mas eu postei coisas para isso em muitos lugares no SO.

     function getSelectionText() { var text = ""; var activeEl = document.activeElement; var activeElTagName = activeEl ? activeEl.tagName.toLowerCase() : null; if ( (activeElTagName == "textarea") || (activeElTagName == "input" && /^(?:text|search|password|tel|url)$/i.test(activeEl.type)) && (typeof activeEl.selectionStart == "number") ) { text = activeEl.value.slice(activeEl.selectionStart, activeEl.selectionEnd); } else if (window.getSelection) { text = window.getSelection().toString(); } return text; } document.onmouseup = document.onkeyup = document.onselectionchange = function() { document.getElementById("sel").value = getSelectionText(); }; 
     Selection: 

    Please select some text.




    Obtenha o texto destacado desta maneira:

     window.getSelection().toString() 

    e, claro, um tratamento especial para isto é:

     document.selection.createRange().htmlText 

    Essa solução funciona se você estiver usando o chrome (não é possível verificar outros navegadores) e se o texto estiver localizado no mesmo elemento DOM:

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