[whatwg] script tag handling in "after head"
Tommy Thorsen
tommy at kvaleberg.com
Tue Nov 11 03:27:04 PST 2008
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 elements.
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...
regards,
Tommy
More information about the whatwg
mailing list