- From: Simon Pieters <simonp@opera.com>
- Date: Wed, 09 May 2012 19:24:52 +0200
- To: "Henri Sivonen" <hsivonen@iki.fi>, "Ian Hickson" <ian@hixie.ch>
- Cc: "Rafael Weinstein" <rafaelw@google.com>, "Webapps WG" <public-webapps@w3.org>, "Yehuda Katz" <wycats@gmail.com>
On Wed, 09 May 2012 19:01:42 +0200, Ian Hickson <ian@hixie.ch> wrote: > > Quick alternative proposal that might work for both <template> parsing > and > DocumentFragment.innerHTML: > > Have createDocumentFragment() take as an argument a context element. > Maybe also make it a mutable attribute of the object. Defaults to its > owner document's body element or root element or some such. Null means > no root element. > > var df = document.createDocumentFragment(document.body); > df.contextElement = document.createElement('style'); Or just string with the tag name, so it works the same as <template context>? > Have innerHTML use that as the context element to the fragment parsing > algorithm. > > df.innerHTML = 'p::before { content: '<hello> <world>'; }'; > > Have <template> take an argument that's the element tag name for it to > use to create its context element. Defaults to <body>. > <template context="tr"> <td> </template> > <template context="svg"> <g/> </template> > > Parse <template> by creating a new Document object that's like the > ones > you get from createDocument() (i.e. "dead"), and then creating a > DocumentFragment owned by that Document, and then pushing that > DocumentFragment onto the stack instead of the <template> element, but > set up to act like the <template> element for the purposes of being > popped off. (Except when parsing without a browsing context, then you > just parse normally.) > > Not sure how solid this is, but it's an idea at least. Hopefully an > original one, though I'm sure y'all have considered it before. :-) > -- Simon Pieters Opera Software
Received on Wednesday, 9 May 2012 17:25:51 UTC