[whatwg] script tag handling in "after head"
ian at hixie.ch
Mon Dec 1 19:58:48 PST 2008
On Tue, 11 Nov 2008, Tommy Thorsen wrote:
> This one is kinda complex, but I'll try to explain the problem. The
> algorithm for handling script start tags in the "after head" insertion
> mode requires us to push the head element pointer onto the stack of open
> elements, then process the token using the rules for the "in head"
> insertion mode. Finally we are required to:
> Pop the current node (which will be the node pointed to by the head
> element pointer)
> The assertion that the current node is still the head element pointer
> does not seem correct, as we push a script element onto the stack of
> open elements in the "A start tag whose tag name is 'script'" section of
> the "in head" insertion mode.
> Alternatively, the script tag handling in "in head" could be interpreted
> to not require us to push the script element onto the stack of open
> elements, but then the following assertion in "An end tag whose tag name
> is 'script'" in "in CDATA/RCDATA" will not hold true:
> Let script be the current node (which will be a script element).
> In our implementation, I've chosen to implement the "A start tag token
> whose tag name is one of: 'base', 'link', 'meta', 'noframes', 'script',
> 'style', 'title'" as if it said:
> Parse error.
> Let /node/ be the head element pointer
> Push the node pointed to by the head element pointer onto the stack of open
> Process the token using the rules for the "in head" insertion mode.
> Remove /node/ from the stack of open elements
> I haven't come across any problems with this approach so far...
That seems reasonable. Another approach would be to pop the head element
pointer after the end tag in the "in CDATA/RCDATA" insertion mode. I've
gone with your approach.
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg