Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 6th, 2012  |  syntax: None  |  size: 1.14 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Calculate the start and end position of user selection using javascript from a parent element
  2. function getBodyTextOffset(node, offset) {
  3.     var sel = window.getSelection();
  4.     var range = document.createRange();
  5.     range.selectNodeContents(document.getElementById('test'));
  6.     range.setEnd(node, offset);
  7.     sel.removeAllRanges();
  8.     sel.addRange(range);
  9.     return sel.toString().length;
  10. }
  11.  
  12. function getSelectionOffsets() {
  13.     var sel, range;
  14.     var start = 0, end = 0;
  15.     if (window.getSelection) {
  16.         sel = window.getSelection();
  17.         if (sel.rangeCount) {
  18.             range = sel.getRangeAt(sel.rangeCount - 1);
  19.             start = getBodyTextOffset(range.startContainer, range.startOffset);
  20.             end = getBodyTextOffset(range.endContainer, range.endOffset);
  21.             sel.removeAllRanges();
  22.             sel.addRange(range);
  23.             alert(start + ", " + end);
  24.         }
  25.     } else if (document.selection) {
  26.         // IE stuff here
  27.     }
  28.     return {
  29.         start: start,
  30.         end: end
  31.     };
  32. }
  33.        
  34. for (i in window.getSelection()) {alert('i = '+i);}
  35.        
  36. for (i in window.getSelection().getRangeAt(0)) {alert('i = '+i);}