Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It is quite difficult to write a cross browser, generic "get selected text" function. If you can limit your requirements to say only text selected in a page, then life is simpler. </p> <p>But if you want to be able to get text selections from anywhere (inside form controls, button labels, general text), then life is tough.</p> <p>Here's a function I wrote some time ago, it worked well enough for the application it was used in:</p> <pre><code>/* * This function returns the selected text in a document. * If no text selected, returns an empty string. * * Call on one of the following events: * * mouseup - most appropriate event * for selection by mousedown, drag to select, mouseup * may select only whitespace * * dblclick - not as appropriate as mouseup * for selection of word by double click * may select only whitespace * * Note that text can be selected in ways that do not dispatch * an event, e.g. selecting all the text in the document using: * ctrl + a * context menu -&gt; Select All * edit menu -&gt; Select All * programmatically selecting text */ function checkForSelectedText(e) { var e = e || window.event; var el = e.target || e.srcElement; var tagName = el.tagName &amp;&amp; el.tagName.toLowerCase(); var t; var d = document; // Try DOM 2 Range - for most browsers, including IE 6+ // However, doesn't get text selected inside form controls // that allow selection of text content (input type text, // textarea) if (d &amp;&amp; d.selection &amp;&amp; d.selection.createRange) { t = d.selection.createRange().text; // Otherwise try HTML5 - note that getSelection returns // a string with extra properties. This may also get // text within input and textarea } else if (d.getSelection) { t = d.getSelection(); } // If didn't get any text, see if event was inside // inupt@type=text or textarea and look for text if (t == '') { if (tagName == 'textarea' || (tagName == 'input' &amp;&amp; el.type == 'text')) { // Check selectionStart/End as otherwise if no text // selected, IE returns entire text of element if (typeof el.selectionStart == 'number' &amp;&amp; el.selectionStart != el.selectionEnd) { t = el.value.substring(el.selectionStart, el.selectionEnd) } } } return t; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload