Skip to content

Instantly share code, notes, and snippets.

@meltingice
Created September 15, 2009 00:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meltingice/187039 to your computer and use it in GitHub Desktop.
Save meltingice/187039 to your computer and use it in GitHub Desktop.
/*
* this.getTextSelection()
* Utility function that returns the text that is selected
* and is cross-browser compatible.
*/
OsimoEditorControls.prototype.getTextSelection = function(){
var textarea = $('#'+this.input+'_editbox').get(0);
if (window.getSelection) {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
var result = {"textarea":textarea,"start":start,"end":end,"len":len,"sel":sel};
return result;
}
else if (document.selection) {
/* Damn you IE, why must you torture me so? */
var range = document.selection.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText( textarea );
stored_range.setEndPoint( 'EndToEnd', range );
textarea.selectionStart = stored_range.text.length - range.text.length;
textarea.selectionEnd = textarea.selectionStart + range.text.length;
var result = {"textarea":textarea,"start":textarea.selectionStart,"end":textarea.selectionEnd,"len":textarea.value.length,"sel":range.text};
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment