X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F02_dom%2F09_XHTMLParser.js;h=b0007c408bd081cfd3a1125d4d5a3251e5b94463;hb=9e30a8480de03f0b36d2411a0ecb7f1d0f47b61f;hp=1a3e692d31b84582016c8d9506b5e1b930ad8622;hpb=94c39d10a21853703c90cb09b1e82bd7a2d8923e;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 1a3e692..b0007c4 100644 --- a/0.6.x/js/02_dom/09_XHTMLParser.js +++ b/0.6.x/js/02_dom/09_XHTMLParser.js @@ -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}; // 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; function X_HTMLParser_exec( html, handler, async ){ var special = X_HTMLParser_special, @@ -269,8 +271,8 @@ var X_HTMLParser_CHARS = { var inline = X_HTMLParser_inline, parseEndTag = X_HTMLParser_parseEndTag, sisters = X_HTMLParser_sisters; - if ( X_HTMLParser_block[ tagName ] === 1 ) { - while ( last && inline[ last ] === 1 ) { + if( !X_HTMLParser_skipFixNesting && X_HTMLParser_block[ tagName ] === 1 ){ + while( last && inline[ last ] === 1 ){ parseEndTag( stack, handler, last ); last = stack[ stack.length - 1 ]; };