[webkit-help] How to use DOMRange to select a paragraph's outer HTML?

Alexander Shulgin alexander.shulgin at yessoftware.com
Tue May 18 06:23:34 PDT 2010

On 17.05.2010 20:00, Alexander Shulgin wrote:
> Hi,
> I'm new to the list, so hope this is the right place for my question.
> Feel free to redirect me to more appropriate one if it's not.
> In the content editing mode is there a way to programmatically select
> _outer_ representation of a HTML tag, e.g.<p>, so that when we call one
> of the replaceSelectionWith*() methods, the selected tag is replaced as
> a whole?
> I'm trying to use setSelectedDOMRange() like this:
> DOMRange* range = ...;
> range->setStartBefore(paragraphToReplace);
> range->setEndAfter(paragraphToReplace);
> webView->replaceSelectionWithNode(replacementParagraph);
> But this has unpleasant side effects: any adjacent tags are merged into
> the newly inserted paragraph.  And this can be quite annoying as it
> would happily convert any adjacent<h1>  into<span>, while preserving
> the look, but not semantics of HTML.

Just noted I didn't say why I need this to work.  I'm trying to replace 
HTML like this:

<p>Text text text.</p>

with this:

<p style="padding-left: 20px">Text text text.</p>

_and_ I need undo to work, so the only way seems to be using 
replaceSelectionWith*() methods.

Hope this clarifies my problem a bit.


More information about the webkit-help mailing list