On Fri, 04 Nov 2011 00:48:29 +0100, Anne van Kesteren <ann...@opera.com>
wrote:
On Thu, 03 Nov 2011 16:44:49 -0700, Tim Down <timd...@gmail.com> wrote:
Have you looked at the createContextualFragment() method of Range?
http://html5.org/specs/dom-parsing.html#dom-range-createcontextualfragment
That requires a context. Yehuda wants a way of parsing where you do not
know the context in advance.
This is something I've always wanted, so I always wrote my piece of code
to make the task easier. But I do suggest a different solution:
Instead of
# var f = document.createDocumentFragment()
# f.innerHTML = '...';
which is quite verbose, I would suggest a simpler API, like
# var document_fragment_node = parseFragment(markup_fragment, Node
contextNode, boolean safe);
# var element_node = parseNode (markup_fragment, Node
contextNode, boolean safe);
# var document_node = parseDocument(markup_fragment, boolean
safe);
* markup_fragment is the html string, or xml depending on the type of
document of the ownerDocument of contextNode.
* contextNode is an Element for parsing context and to know the
ownerDocument, or if context is not important, the Document which will be
the ownerDocument of the resulting fragment
* stripScripts is a boolean that tells the parser to strip unsafe content
like scripts, event listeners and embeds/objects which would be handled by
a 3rd party plugin according to user agent policy.
- parseFragment parses a markup fragment which may not have a single root
element, hence having siblings, with context.
- parseFragment parses a markup fragment which must have a single root
element, so the DocumentFragment can be spared. This is usually the most
wanted use case.
- parseDocument similar to DOMParser but for html.
At least for me, an API with these features are everything that I've ever
needed.
Thanks.