X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fcore%2Fhtmlparser.js;h=acd5ef5efb4752cd1951a2930d9b9883f699c0e2;hb=refs%2Ftags%2Fv3.3.2;hp=e34fcb2502b17e556cea1958ebee9baa9595a280;hpb=ea7e3453c7b0f023b050aca6d9f83ab372860d91;p=ckeditor.git diff --git a/_source/core/htmlparser.js b/_source/core/htmlparser.js index e34fcb2..acd5ef5 100644 --- a/_source/core/htmlparser.js +++ b/_source/core/htmlparser.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ @@ -18,7 +18,7 @@ CKEDITOR.htmlParser = function() (function() { - var attribsRegex = /([\w:]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g, + var attribsRegex = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g, emptyAttribs = {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}; CKEDITOR.htmlParser.prototype = @@ -172,6 +172,12 @@ CKEDITOR.htmlParser = function() if ( ( tagName = parts[ 3 ] ) ) { tagName = tagName.toLowerCase(); + + // There are some tag names that can break things, so let's + // simply ignore them when parsing. (#5224) + if ( /="/.test( tagName ) ) + continue; + var attribs = {}, attribMatch, attribsPart = parts[ 4 ], @@ -201,7 +207,7 @@ CKEDITOR.htmlParser = function() } // Comment - if( ( tagName = parts[ 2 ] ) ) + if ( ( tagName = parts[ 2 ] ) ) this.onComment( tagName ); }