On 31 May 2011 09:15, Markus Ernst <derer...@gmx.ch> wrote: > 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
Aryeh's own example implementation script accompanying the execCommand spec has several of these (block-extending a range, decomposing a range and performing DOM manipulation while preserving ranges, for example). See http://aryeh.name/spec/editcommands/implementation.js Tim