[thelist] Using Javascript to add tags to selected text in textarea

Simon Willison simon at incutio.com
Fri May 24 09:36:42 CDT 2002


At 14:11 23/05/02 -0400, you wrote:
>Hi Simon-
>
>I don't know that you'll be able to do this with Mozilla, but it is
>certainly possible with IE.  Check this out:
>
>theSelection = document.selection.createRange().text;
>document.selection.createRange().text = "*" + theSelection + "*";
>
>This is straight off the phpBB forum software, at phpBB.com.  HTH!

Thanks, that works a treat in IE - in fact I've expanded it slightly to
make sure it only works inside text areas (the basic code will add tags to
text selected anywhere on the page):

<script type="text/javascript">
function addStarsToSelection() {
   theSelection = document.selection.createRange().text;
   if (!theSelection)
     return false;
   if (document.selection.createRange().parentElement().tagName != 'TEXTAREA')
     return false;
   document.selection.createRange().text = "*" + theSelection + "*";
}
</script>

I think I'll have to give up on the Mozilla implementation. It seems that
Mozilla has a document.getSelection() method which can grab the selected
text but there is no equivalent to Microsoft's textrange object through
which you can manipulate the currently selected area.

Thanks for the help,

Simon Willison




More information about the thelist mailing list