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
_attrs = {};\r
for( ; i; ){\r
if( attr = attrs[ --i ] ){\r
- if( X.Type.isString( attr ) ){\r
+ if( X_Type_isString( attr ) ){\r
name = attr;\r
_attrs[ name ] = true;\r
} else {\r
var X_HTMLParser_asyncHtmlStringToXNode = {\r
err : function( html ){\r
X_HTMLParser_htmlStringToXNode.err( html );\r
- this.asyncDispatch( X.Event.ERROR );\r
+ this.asyncDispatch( X_Event.ERROR );\r
},\r
start : X_HTMLParser_htmlStringToXNode.start,\r
end : X_HTMLParser_htmlStringToXNode.end,\r
comment : X.emptyFunction,\r
\r
progress : function( pct ){\r
- this.asyncDispatch( { type : X.Event.PROGRESS, percent : pct } );\r
+ this.asyncDispatch( { type : X_Event.PROGRESS, percent : pct } );\r
},\r
complete : function(){\r
var ret = X_HTMLParser_htmlStringToXNode.flat;\r
delete X_HTMLParser_htmlStringToXNode.flat;\r
- this.asyncDispatch( { type : X.Event.SUCCESS, xnodes : ret } );\r
+ this.asyncDispatch( { type : X_Event.SUCCESS, xnodes : ret } );\r
}\r
};\r
\r
function X_HTMLParser_asyncParse( html, ignoreError ){\r
var dispatcher = X_Class_override( new X.EventDispatcher(), X_HTMLParser_asyncHtmlStringToXNode ),\r
worker = X_HTMLParser_htmlStringToXNode;\r
- dispatcher.listenOnce( X.Event.SUCCESS, dispatcher, dispatcher.kill );\r
+ dispatcher.listenOnce( X_Event.SUCCESS, dispatcher, dispatcher.kill );\r
worker.flat = [];\r
worker.nest.length = 0;\r
worker.ignoreError = ignoreError;\r