OSDN Git Service

Version 0.6.132, fix X.Node._flags & fix X.EventDispatcher._listeners & start to...
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 09_XHTMLParser.js
index 6804817..b0007c4 100644 (file)
@@ -50,7 +50,9 @@ var X_HTMLParser_CHARS = {
        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
@@ -269,8 +271,8 @@ var X_HTMLParser_CHARS = {
                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
@@ -318,7 +320,7 @@ var X_HTMLParser_htmlStringToXNode = {
                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
@@ -344,7 +346,7 @@ var X_HTMLParser_htmlStringToXNode = {
                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