X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F02_dom%2F09_XHTMLParser.js;h=27f2164c5d295b88838a8291db849b543554853d;hb=a720658bd6302a1bd5efae47333b6df793370f3d;hp=2aff37d86accb13b530b4bcf9cb9e92aebc5f33a;hpb=a130cabd01fde8865990a59d849f5d5d08ed2119;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 2aff37d..27f2164 100644 --- a/0.6.x/js/02_dom/09_XHTMLParser.js +++ b/0.6.x/js/02_dom/09_XHTMLParser.js @@ -6,37 +6,35 @@ */ var X_HTMLParser_CHARS = { - 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, - 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, - // "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使う + '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, + '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, + '!':1,// "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使う '\t' : 16, '\r\n' : 16, '\r' : 16, '\n' : 16, '\f' : 16, '\b' : 16, ' ' : 16 }, - X_HTMLParser_alphabets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', - X_HTMLParser_whiteSpace = '\t\r\n\f\b ', // Empty Elements - HTML 4.01 - X_HTMLParser_empty = X_Dom_DTD_EMPTY, + // X_Dom_DTD_EMPTY // Block Elements - HTML 4.01 - 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 }, + 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, - 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 + 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) - 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 + 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 X_HTMLParser_sisters = { - TH : { TD : 1 }, - TD : { TH : 1 }, - DT : { DD : 1 }, - DD : { DT : 1 }, - COLGROUP : { CAPTION : 1 }, - THEAD : { CAPTION : 1, COLGROUP : 1 }, - TFOOT : { CAPTION : 1, COLGROUP : 1, THEAD : 1, TBODY : 1 }, - TBODY : { CAPTION : 1, COLGROUP : 1, THEAD : 1, TFOOT : 1 } + 'TH' : { 'TD' : 1 }, + 'TD' : { 'TH' : 1 }, + 'DT' : { 'DD' : 1 }, + 'DD' : { 'DT' : 1 }, + 'COLGROUP' : { 'CAPTION' : 1 }, + 'THEAD' : { 'CAPTION' : 1, 'COLGROUP' : 1 }, + 'TFOOT' : { 'CAPTION' : 1, 'COLGROUP' : 1, 'THEAD' : 1, 'TBODY' : 1 }, + 'TBODY' : { 'CAPTION' : 1, 'COLGROUP' : 1, 'THEAD' : 1, 'TFOOT' : 1 } }, /* * http://www.tohoho-web.com/html/tbody.htm @@ -47,10 +45,9 @@ var X_HTMLParser_CHARS = { */ // Attributes that have their values filled in disabled="disabled" - 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}; // Special Elements (can contain anything) - X_HTMLParser_special = { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 }, + X_HTMLParser_special = { 'SCRIPT' : 1, 'STYLE' : 1, 'PLAINTEXT' : 1, 'XMP' : 1, 'TEXTAREA' : 1 }, X_HTMLParser_skipFixNesting = false; @@ -58,8 +55,6 @@ var X_HTMLParser_CHARS = { var special = X_HTMLParser_special, //plainText = X_HTMLParser_plainText, startTime = async && X_Timer_now(), - _parseStartTag = X_HTMLParser__parseStartTag, - _parseEndTag = X_HTMLParser__parseEndTag, stack = async ? async[ 1 ] : [], lastHtml = html, chars, last, text, index; @@ -69,10 +64,10 @@ var X_HTMLParser_CHARS = { last = stack[ stack.length - 1 ]; // Make sure we're not in a script or style element - if ( last && special[ last ] === 1 ) { - if( 0 <= ( index = html.toUpperCase().indexOf( '