[whatwg] Generalized execCommand() alternatives, or standardized selection and range handling
Markus Ernst
derernst at gmx.ch
Tue May 31 01:15:20 PDT 2011
While following the discussions about Aryeh Gregor's great work on
execCommand(), I get the impression that this method is very limited to
some basic formatting actions. It provides shortcuts for a limited set
of DOM actions, but is not really extendable or generalizable.
Some of the discussions were about adding support for new elements, such
as <header> and <section>, or for distinctive <i> and <em> resp. <b> and
<strong> elements. I doubt that extending execCommand() with specific
new commands for more elements would be the direction to go.
With the focus on HTML editing rather than WYSIWYG editing, some kind of
generalized wrapping/unwrapping mechanism would be helpful. This could
be handled with a new method that offers shortcuts for
wrapping/unwrapping selections; some kind of addWrapper(elementName) and
removeWrapper(elementName).
Anyway, everything we need is actually available in the DOM, except a
standardized and simple handling of selections and ranges. (Well, I
might be wrong - but looking at the Gecko DOM reference and the MSDN
DHTML reference, they show very different approaches to the range and
selection objects, and the code of TinyMCE shows lots of browser
sniffing.) I'd find it very helpful as an addition to Aryeh's work, to
get standardized methods for actions like:
- creating a range out of a selection
- block-extending the range
- accessing all child elements of the range
- accessing all parent elements of the range
- memorizing start and end points in order to reset the selection after
modifications
(This list may not be complete.)
I'd be happy about some thoughts on this.
--
Markus
More information about the whatwg
mailing list