X_HTMLParser_fillAttrs = X_Node_Attr_noValue, //{checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};\r
\r
// Special Elements (can contain anything)\r
- X_HTMLParser_special = { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 };\r
+ X_HTMLParser_special = { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 },\r
+ \r
+ X_HTMLParser_skipFixNesting = false;\r
\r
function X_HTMLParser_exec( html, handler, async ){\r
var special = X_HTMLParser_special,\r
var inline = X_HTMLParser_inline,\r
parseEndTag = X_HTMLParser_parseEndTag,\r
sisters = X_HTMLParser_sisters;\r
- if ( X_HTMLParser_block[ tagName ] === 1 ) {\r
- while ( last && inline[ last ] === 1 ) {\r
+ if( !X_HTMLParser_skipFixNesting && X_HTMLParser_block[ tagName ] === 1 ){\r
+ while( last && inline[ last ] === 1 ){\r
parseEndTag( stack, handler, last );\r
last = stack[ stack.length - 1 ];\r
};\r
if( l ){\r
xnode = nest[ l - 1 ].create( tagName );\r
} else {\r
- xnode = flat[ flat.length ] = X.Node.create( tagName );\r
+ xnode = flat[ flat.length ] = X_Doc_create( tagName );\r
};\r
if( !noChild ) nest[ l ] = xnode;\r
if( i = attrs.length ){\r
if( X_HTMLParser_htmlStringToXNode.nest.length ){\r
X_HTMLParser_htmlStringToXNode.nest[ X_HTMLParser_htmlStringToXNode.nest.length - 1 ].createText( text );\r
} else {\r
- X_HTMLParser_htmlStringToXNode.flat[ X_HTMLParser_htmlStringToXNode.flat.length ] = X.Node.createText( text );\r
+ X_HTMLParser_htmlStringToXNode.flat[ X_HTMLParser_htmlStringToXNode.flat.length ] = X_Doc_createText( text );\r
};\r
},\r
comment : X.emptyFunction\r