W3C home > Mailing lists > Public > whatwg@whatwg.org > May 2010

[whatwg] Request for new DOM property textarea.selectionText

From: Ojan Vafai <ojan@chromium.org>
Date: Mon, 10 May 2010 07:27:23 -0700
Message-ID: <w2q78dc8441005100727v5568d0a0jed02aa1b139a8c7c@mail.gmail.com>
In addition to selection and scroll issues, needing to replace the entire
textarea value doesn't scale and thus limits what sorts of things you can do
with textareas. A general way to set a sub-part of a textarea's value seems
useful to me. I don't think we should tie that to setting the selected text
though.

textarea.setRangeText(start, end, text);

It replaces the text between start and end, maintains current scroll
position and preserves the selection.

Ojan

On Mon, May 10, 2010 at 12:59 AM, Biju <bijumaillist at gmail.com> wrote:

> Current way in firefox is to
>
> 1. OrigStart = textarea.selectionStart
> 2.  textarea.value = textarea.value.substr(0, OrigStart)
>                          + new_text_to_replace
>                          + textarea.value.substr(textarea.selectionEnd);
> 3. Now u loose original selection, so
>
> 4.  textarea.setSelectionRange(OrigStart,
>  OrigStart+new_text_to_replace.length)
> 5.  remember .scrollTop and reapply if needed
>
> Now if we are only changing few selected characters in TEXTAREA with
> big text content,
> we are unnecessarily replacing entire content, which is inefficient.
>
>
> On IE even though wierd you can do it simply by
>   document.selection.createRange().text = new_text_to_replace;
> BTW, you need to make sure the selection is currently on the
> textarea/input form control.
> IE is also very fast when doing that, when firefox hangs few second
> using the other way
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20100510/fb9d66da/attachment.htm>
Received on Monday, 10 May 2010 07:27:23 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:23 UTC