X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F02_dom%2F09_XHTMLParser.js;h=27f2164c5d295b88838a8291db849b543554853d;hb=bafa8683f87b2f909d1301fca80684bf9ff221ed;hp=764ce5f3c97c9145cf3a244fd029b3218078a245;hpb=eedd028ba64be2ea0828cf686f1d0ec3bb4010d5;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/02_dom/09_XHTMLParser.js b/0.6.x/js/02_dom/09_XHTMLParser.js index 764ce5f..27f2164 100644 --- a/0.6.x/js/02_dom/09_XHTMLParser.js +++ b/0.6.x/js/02_dom/09_XHTMLParser.js @@ -20,7 +20,7 @@ var X_HTMLParser_CHARS = { 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, '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 }, // Inline Elements - HTML 4.01 - 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, + 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, '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}, // Elements that you can,' intentionally,' leave open // (and which close themselves) @@ -120,7 +120,7 @@ var X_HTMLParser_CHARS = { return; }; - if( async && startTime + 15 <= X_Timer_now() && html ){ + if( async && startTime + X_Timer_INTERVAL_TIME <= X_Timer_now() && html ){ handler.progress( 1 - html.length / async[ 0 ] ); X_Timer_once( 0, X_HTMLParser_exec, [ html, handler, async ] ); return; @@ -132,7 +132,7 @@ var X_HTMLParser_CHARS = { // Clean up any remaining tags X_HTMLParser_parseEndTag( stack, handler ); - async && handler.complete(); + async && handler.asyncComplete(); }; function X_HTMLParser__parseStartTag( stack, last, handler, html ){ @@ -175,8 +175,8 @@ var X_HTMLParser_CHARS = { ( ( phase = 5 ) && ( attrName = html.substring( start, i ) ) ); break; case 5 : // 属性の = または次の属性または htmlタグの閉じ - ( whiteSpace[ chr ] & 16 ) ?// ie4 未対応の属性には cite = http:// となる - 1 : + !( whiteSpace[ chr ] & 16 ) &&// ie4 未対応の属性には cite = http:// となる + // 1 : ( alphabets[ chr ] & 3 ) ? ( ( phase = 4 ) && ( attrs[ attrs.length ] = attrName ) && ( start = i ) ) : chr === '=' ? @@ -223,7 +223,7 @@ var X_HTMLParser_CHARS = { empty = empty || X_Dom_DTD_EMPTY[ tagUpper ]; !empty && ( stack[ stack.length ] = handler.isXML ? tagName : tagUpper ); - if( handler.start( handler.isXML ? tagName : tagUpper, attrs, empty, i ) === false ) return false; + if( handler.tagStart( handler.isXML ? tagName : tagUpper, attrs, empty, i ) === false ) return false; return i; }; @@ -270,9 +270,9 @@ var X_HTMLParser_CHARS = { name = name.toLowerCase(); value = X_Node_Attr_noValue[ name ] === 1 ? name : value; attrs[ attrs.length ] = { - name : name, - value : value, - escaped : + attName : name, + // attrValue : value, + escaped : value.indexOf( '"' ) !== -1 ? value.split( '"' ).join( '\\"' ).split( '\\\\"' ).join( '\\"' ) : value @@ -292,7 +292,7 @@ var X_HTMLParser_CHARS = { if ( 0 <= pos ) { // Close all the open elements, up the stack for ( ; pos < i; ) - handler.end( stack[ --i ] ); + handler.tagEnd( stack[ --i ] ); // Remove the open elements from the stack stack.length = pos; @@ -307,7 +307,7 @@ var X_HTMLParser_htmlStringToXNode = { X_HTMLParser_htmlStringToXNode.flat.length = 0; !X_HTMLParser_htmlStringToXNode.ignoreError && X.Logger.warn( 'X_Dom_Parser() error ' + html ); }, - start : function( tagName, attrs, noChild, length ){ + tagStart : function( tagName, attrs, noChild, length ){ var xnode, nest = X_HTMLParser_htmlStringToXNode.nest, flat = X_HTMLParser_htmlStringToXNode.flat, @@ -327,7 +327,7 @@ var X_HTMLParser_htmlStringToXNode = { name = attr; _attrs[ name ] = true; } else { - name = attr.name; + name = attr.attName; _attrs[ name ] = attr.escaped; }; }; @@ -335,7 +335,7 @@ var X_HTMLParser_htmlStringToXNode = { xnode[ 'attr' ]( _attrs ); }; }, - end : function(){ + tagEnd : function(){ 0 < X_HTMLParser_htmlStringToXNode.nest.length && ( --X_HTMLParser_htmlStringToXNode.nest.length ); }, chars : function( text ){ @@ -365,15 +365,15 @@ var X_HTMLParser_asyncHtmlStringToXNode = { X_HTMLParser_htmlStringToXNode.err( html ); this[ 'asyncDispatch' ]( X_EVENT_ERROR ); }, - start : X_HTMLParser_htmlStringToXNode.start, - end : X_HTMLParser_htmlStringToXNode.end, - chars : X_HTMLParser_htmlStringToXNode.chars, - comment : X_emptyFunction, + tagStart : X_HTMLParser_htmlStringToXNode.tagStart, + tagEnd : X_HTMLParser_htmlStringToXNode.tagEnd, + chars : X_HTMLParser_htmlStringToXNode.chars, + comment : X_emptyFunction, progress : function( pct ){ this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : pct } ); }, - complete : function(){ + asyncComplete : function(){ var ret = X_HTMLParser_htmlStringToXNode.flat; delete X_HTMLParser_htmlStringToXNode.flat; this[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, xnodes : ret } );