[WA1] GUI Selections (was Re: [whatwg] Web Forms 2.0)

Olav Junker Kjær olav at olav.dk
Thu Feb 24 03:47:01 PST 2005


Matthew Raymond wrote:
>    The Mozilla getSelection method doesn't actually return a DOM Range, 
> though, so I'm inclined to pass on it, even though we're introducing 
> window in WA1. It just strikes me as too complicated; it introduces a 
> completely new selection object, multiple ranges, et cetera...

This is like the IE model: a selection is is separate object, which may 
contain one ore more ranges. At least in IE this indirection is 
necessary since a the selection can be discontinuous e.g. several 
pictures different places in the same document (selected while holding 
the ctrl key down).

IE distinguishes between "text selection" and "control selection". 
Images, input controls, tables and absolutely positioned elements may be 
individually control-selected, which enables you to move end resize 
them. Continuous ranges of text (including objects) may be 
text-selected, but as far as I know, only one continuous text range can 
be selected at a time.
I don't know if Mozilla has a similar distinction?

Anyway, I agree this seem like overkill if you just want to manipulate 
the selection in a text-box. It might be useful to have some convenience 
methods to get the start and end points of a the current selection in a 
input field without having to walk through the selection and range objects.


>    Well, the question, though, is whether or not DOM Range provides 
> enough of an interface. In theory, you could do everything you need to, 
> but in reality the scripting could get so complex that you're rather 
> just use a built-in method like execCommand.

True. The execCommand encapsulates quite a bit of complexity. The 
problem with the IE version is that it is a black box. You cannot modify 
how a command works, you cannot create your own commands, and if you 
work outside of the box (and directly through the DOM), the undo history 
(which is the killer feature) is cleared. If WA1 should include 
execCommand, it should be a more general framework, which should allow 
you to create your own undoable commands. In the end this gets rather 
complicated.

It does make sense though, to standardize the execCommand interface, 
since lots of CMS frontends rely on contentEditable+execCommand, and 
this is an area where IE have a stronghold, since its still the only 
browser (as far as I know) that support contentEditable.

regards
Olav Junker Kjær



More information about the whatwg mailing list