OSDN Git Service

Version 0.6.113, fix X.Net.XHR, etc...
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 09_XHTMLParser.js
index af11c4b..1a3e692 100644 (file)
@@ -5,31 +5,30 @@
  *\r
  */\r
 \r
-var X_Dom_Parser = { // HTMLParser\r
-       CHARS : {\r
+var X_HTMLParser_CHARS = {\r
                A:1,B:1,C:1,D:1,E:1,F:1,G:1,H:1,I:1,J:1,K:1,L:1,M:1,N:1,O:1,P:1,Q:1,R:1,S:1,T:1,U:1,V:1,W:1,X:1,Y:1,Z:1,\r
                a:2,b:2,c:2,d:2,e:2,f:2,g:2,h:2,i:2,j:2,k:2,l:2,m:2,n:2,o:2,p:2,q:2,r:2,s:2,t:2,u:2,v:2,w:2,x:2,y:2,z:2,\r
                // "0" : 4, "1" : 4, "2" : 4, "3" : 4, "4" : 4, "5" : 4, "6" : 4, "7" : 4, "8" : 4, "9" : 4, closure compiler で minify すると ie4 で error、eval使う\r
                \r
                '\t' : 16, '\r\n' : 16, '\r' : 16, '\n' : 16, '\f' : 16, '\b' : 16, ' ' : 16\r
        },\r
-       alphabets  : 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\r
-       whiteSpace : '\t\r\n\f\b ',\r
+       X_HTMLParser_alphabets  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\r
+       X_HTMLParser_whiteSpace = '\t\r\n\f\b ',\r
 \r
        // Empty Elements - HTML 4.01\r
-       empty : X_Dom_DTD_EMPTY,\r
+       X_HTMLParser_empty = X_Dom_DTD_EMPTY,\r
 \r
        // Block Elements - HTML 4.01\r
-       block : {ADDRESS:1,APPLET:1,BLOCKQUOTE:1,BUTTON:1,CENTER:1,DD:1,DEL:1,DIR:1,DIV:1,DL:1,DT:1,FIELDSET:1,FORM:1,FRAMESET:1,HR:1,IFRAME:1,INS:1,\r
+       X_HTMLParser_block = {ADDRESS:1,APPLET:1,BLOCKQUOTE:1,BUTTON:1,CENTER:1,DD:1,DEL:1,DIR:1,DIV:1,DL:1,DT:1,FIELDSET:1,FORM:1,FRAMESET:1,HR:1,IFRAME:1,INS:1,\r
                ISINDEX:1,LI:1,MAP:1,MENU:1,NOFRAMES:1,NOSCRIPT:1,OBJECT:1,OL:1,P:1,PRE:1,SCRIPT:1,TABLE:1,TBODY:1,TD:1,TFOOT:1,TH:1,THEAD:1,TR:1,UL:1 },\r
        // Inline Elements - HTML 4.01\r
-       inline : {A:1,ABBR:1,ACRONYM:1,APPLET:1,B:1,BASEFONT:1,BDO:1,BIG:1,BR:1,BUTTON:1,CITE:1,CODE:1,DEL:1,DFN:1,EM:1,FONT:1,I:1,IFRAME:1,IMG:1,\r
+       X_HTMLParser_inline = {A:1,ABBR:1,ACRONYM:1,APPLET:1,B:1,BASEFONT:1,BDO:1,BIG:1,BR:1,BUTTON:1,CITE:1,CODE:1,DEL:1,DFN:1,EM:1,FONT:1,I:1,IFRAME:1,IMG:1,\r
                INPUT:1,INS:1,KBD:1,LABEL:1,MAP:1,OBJECT:1,Q:1,S:1,SAMP:1,SCRIPT:1,SELECT:1,SMALL:1,SPAN:1,STRIKE:1,STRONG:1,SUB:1,SUP:1,TEXTAREA:1,TT:1,U:1,VAR:1},\r
        // Elements that you can, intentionally, leave open\r
        // (and which close themselves)\r
-       closeSelf : {OLGROUP:1,DD:1,DT:1,LI:1,OPTIONS:1,P:1,TBODY:1,TD:1,TFOOT:1,TH:1,THEAD:1,TR:1}, // add tbody\r
+       X_HTMLParser_closeSelf = {OLGROUP:1,DD:1,DT:1,LI:1,OPTIONS:1,P:1,TBODY:1,TD:1,TFOOT:1,TH:1,THEAD:1,TR:1}, // add tbody\r
 \r
-       sisters : {\r
+       X_HTMLParser_sisters = {\r
                TH : { TD : 1 },\r
                TD : { TH : 1 },\r
                DT : { DD : 1 },\r
@@ -48,17 +47,17 @@ var X_Dom_Parser = { // HTMLParser
         */\r
 \r
        // Attributes that have their values filled in disabled="disabled"\r
-       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
+       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
-       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
-       exec : function( html, handler, async ){\r
-               var special        = X_Dom_Parser.special,\r
-                       //plainText      = X_Dom_Parser.plainText,\r
+       function X_HTMLParser_exec( html, handler, async ){\r
+               var special        = X_HTMLParser_special,\r
+                       //plainText      = X_HTMLParser_plainText,\r
                        startTime      = async && X_Timer_now(),\r
-                       _parseStartTag = X_Dom_Parser._parseStartTag,\r
-                       _parseEndTag   = X_Dom_Parser._parseEndTag,\r
+                       _parseStartTag = X_HTMLParser__parseStartTag,\r
+                       _parseEndTag   = X_HTMLParser__parseEndTag,\r
                        stack          = async ? async[ 1 ] : [],\r
                        lastHtml       = html,\r
                        chars, last, text, index;\r
@@ -126,7 +125,7 @@ var X_Dom_Parser = { // HTMLParser
                        \r
                        if( async && startTime + 15 <= X_Timer_now() && html ){\r
                                handler.progress( 1 - html.length / async[ 0 ] );\r
-                               X.Timer.once( 0, X_Dom_Parser.exec, [ html, handler, async ] );\r
+                               X.Timer.once( 0, X_HTMLParser_exec, [ html, handler, async ] );\r
                                return;\r
                        };\r
                        \r
@@ -134,15 +133,15 @@ var X_Dom_Parser = { // HTMLParser
                };\r
                \r
                // Clean up any remaining tags\r
-               X_Dom_Parser.parseEndTag( stack, handler );\r
+               X_HTMLParser_parseEndTag( stack, handler );\r
                \r
                async && handler.complete();\r
-       },\r
+       };\r
 \r
-       _parseStartTag : function( stack, last, handler, html ){\r
-               var alphabets = X_Dom_Parser.CHARS,\r
-                       whiteSpace = X_Dom_Parser.CHARS,\r
-                       saveAttr = X_Dom_Parser.saveAttr,\r
+       function X_HTMLParser__parseStartTag( stack, last, handler, html ){\r
+               var alphabets = X_HTMLParser_CHARS,\r
+                       whiteSpace = X_HTMLParser_CHARS,\r
+                       saveAttr = X_HTMLParser_saveAttr,\r
                        uri   = X_Dom_DTD_ATTR_VAL_IS_URI,\r
                        phase = 0,\r
                        l     = html.length,\r
@@ -211,15 +210,15 @@ var X_Dom_Parser = { // HTMLParser
                };\r
                if( phase === 9 ){\r
                        if( empty ) ++i;\r
-                       if( X_Dom_Parser.parseStartTag( stack, last, handler, tagName.toUpperCase(), attrs, empty, i ) === false ) return false;\r
+                       if( X_HTMLParser_parseStartTag( stack, last, handler, tagName.toUpperCase(), attrs, empty, i ) === false ) return false;\r
                        return i;\r
                };\r
                return 0; // error\r
-       },\r
+       };\r
 \r
-       _parseEndTag : function( stack, handler, html ){\r
-               var alphabets = X_Dom_Parser.CHARS,\r
-                       whiteSpace = X_Dom_Parser.CHARS,\r
+       function X_HTMLParser__parseEndTag( stack, handler, html ){\r
+               var alphabets = X_HTMLParser_CHARS,\r
+                       whiteSpace = X_HTMLParser_CHARS,\r
                        phase = 0,\r
                        l     = html.length,\r
                        i     = 0,\r
@@ -247,15 +246,15 @@ var X_Dom_Parser = { // HTMLParser
                        ++i;\r
                };\r
                if( phase === 9 ){\r
-                       X_Dom_Parser.parseEndTag( stack, handler, tagName.toUpperCase() );\r
+                       X_HTMLParser_parseEndTag( stack, handler, tagName.toUpperCase() );\r
                        return i;\r
                };\r
                return 0; // error\r
-       },\r
+       };\r
 \r
-       saveAttr : function( attrs, name, value ){\r
+       function X_HTMLParser_saveAttr( attrs, name, value ){\r
                name  = name.toLowerCase();\r
-               value = X_Dom_Parser.fillAttrs[ name ] === 1 ? name : value;\r
+               value = X_HTMLParser_fillAttrs[ name ] === 1 ? name : value;\r
                attrs[ attrs.length ] = {\r
                        name    : name,\r
                        value   : value,\r
@@ -264,26 +263,26 @@ var X_Dom_Parser = { // HTMLParser
                                        value.split( '"' ).join( '\\"' ).split( '\\\\"' ).join( '\\"' ) :\r
                                        value\r
                };\r
-       },\r
+       };\r
 \r
-       parseStartTag : function( stack, last, handler, tagName, attrs, empty, index ) {\r
-               var inline   = X_Dom_Parser.inline,\r
-                       parseEndTag = X_Dom_Parser.parseEndTag,\r
-                       sisters  = X_Dom_Parser.sisters;\r
-               if ( X_Dom_Parser.block[ tagName ] === 1 ) {\r
+       function X_HTMLParser_parseStartTag( stack, last, handler, tagName, attrs, empty, index ) {\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
                                parseEndTag( stack, handler, last );\r
                                last = stack[ stack.length - 1 ];\r
                        };\r
                };\r
-               last && X_Dom_Parser.closeSelf[ tagName ] === 1 && ( last === tagName || ( sisters[ tagName ] && sisters[ tagName ][ last ] === 1 ) ) && parseEndTag( stack, handler, last );\r
-               empty = empty || X_Dom_Parser.empty[ tagName ];\r
+               last && X_HTMLParser_closeSelf[ tagName ] === 1 && ( last === tagName || ( sisters[ tagName ] && sisters[ tagName ][ last ] === 1 ) ) && parseEndTag( stack, handler, last );\r
+               empty = empty || X_HTMLParser_empty[ tagName ];\r
                !empty && ( stack[ stack.length ] = tagName );\r
                \r
                return handler.start( tagName, attrs, empty, index );\r
-       },\r
+       };\r
 \r
-       parseEndTag : function( stack, handler, tagName ) {\r
+       function X_HTMLParser_parseEndTag( stack, handler, tagName ) {\r
                var pos = 0, i = stack.length;\r
                // If no tag name is provided, clean shop\r
                \r
@@ -301,16 +300,14 @@ var X_Dom_Parser = { // HTMLParser
                        // Remove the open elements from the stack\r
                        stack.length = pos;\r
                };\r
-       }\r
-       \r
-};\r
+       };\r
 \r
 var X_HTMLParser_htmlStringToXNode = {\r
        flat : null,\r
        nest : [],\r
        err : function( html ){\r
                X_HTMLParser_htmlStringToXNode.flat.length = 0;\r
-               X_HTMLParser_htmlStringToXNode.ignoreError !== true && X.Logger.warn( 'X_Dom_Parser() error ' + html );\r
+               !X_HTMLParser_htmlStringToXNode.ignoreError && X.Logger.warn( 'X_Dom_Parser() error ' + html );\r
        },\r
        start : function( tagName, attrs, noChild, length ){\r
                var xnode,\r
@@ -321,7 +318,7 @@ var X_HTMLParser_htmlStringToXNode = {
                if( l ){\r
                        xnode = nest[ l - 1 ].create( tagName );\r
                } else {\r
-                       xnode = flat[ flat.length ] = X.Dom.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
@@ -347,7 +344,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.Dom.Node.createText( text );\r
+                       X_HTMLParser_htmlStringToXNode.flat[ X_HTMLParser_htmlStringToXNode.flat.length ] = X_Doc_createText( text );\r
                };\r
        },\r
        comment : X.emptyFunction\r
@@ -358,7 +355,7 @@ function X_HtmlParser_parse( html, ignoreError ){
        worker.flat = [];\r
        worker.nest.length = 0;\r
        worker.ignoreError = ignoreError;\r
-       X_Dom_Parser.exec( html, worker );\r
+       X_HTMLParser_exec( html, worker );\r
        ret = worker.flat;\r
        delete worker.flat;\r
        return ret;\r
@@ -385,12 +382,12 @@ var X_HTMLParser_asyncHtmlStringToXNode = {
 };\r
 \r
 function X_HTMLParser_asyncParse( html, ignoreError ){\r
-       var dispatcher = X.Class._override( new X.EventDispatcher(), X_HTMLParser_asyncHtmlStringToXNode ),\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
        worker.flat = [];\r
        worker.nest.length = 0;\r
        worker.ignoreError = ignoreError;\r
-       X_Dom_Parser.exec( html, dispatcher, [ html.length, [] ] );\r
+       X_HTMLParser_exec( html, dispatcher, [ html.length, [] ] );\r
        return dispatcher;\r
 };\r