﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
2272	FF3: Paste from word leaves lots of garbage tags	Josh Clark	Martin Kou	"In Firefox 3 RC3, the ""paste from word"" feature leaves lots of garbage tags behind. Specifically:

* It does not remove comments.[[BR]]
* It does not remove <style> elements.[[BR]]
* It does not remove <meta> elements.[[BR]]
* It does not remove <link> elements.

The comments issue can be fixed by changing this line in fck_paste.html's CleanWord function:
{{{
html = html.replace(/<\!--.*?-->/g, '' ) ;
}}}

...to this:
{{{
html = html.replace(/<\!--[\s\S]*?-->/g, '' ) ;
}}}

(Because . does not match new lines, multi-line comments are not removed; [\s\S] does the trick instead.)

To be safe, I recommend making similar changes to all of the fck_paste.html instances where .* is used. Specifically, these lines:

{{{
html = html.replace(/<o:p>.*?<\/o:p>/g, '&nbsp;') ;
}}}
{{{
html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;

html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
}}}
{{{
html = html.replace( /<(\w+)[^>]*\sstyle=""[^""]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;
}}}
{{{
html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );
}}}
{{{
var re = new RegExp( '(<P)([^>]*>.*?)(<\/P>)', 'gi' ) ;	// Different because of a IE 5.0 error
}}}

...should be changed respectively to:

{{{
html = html.replace(/<o:p>[\s\S]*?<\/o:p>/g, '&nbsp;') ;
}}}
{{{
html = html.replace( /<SPAN\s*>([\s\S]*?)<\/SPAN>/gi, '$1' ) ;

html = html.replace( /<FONT\s*>([\s\S]*?)<\/FONT>/gi, '$1' ) ;
}}}
{{{
html = html.replace( /<(\w+)[^>]*\sstyle=""[^""]*DISPLAY\s?:\s?none([\s\S]*?)<\/\1>/ig, '' ) ;
}}}
{{{
html = html.replace( /<(H\d)><FONT[^>]*>([\s\S]*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
html = html.replace( /<(H\d)><EM>([\s\S]*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );
}}}
{{{
var re = new RegExp( '(<P)([^>]*>[\s\S]*?)(<\/P>)', 'gi' ) ;	// Different because of a IE 5.0 error
}}}

Also, to get rid of the <meta>, <link> and <style> elements, I suggest adding these additional replacements:

{{{
// Remove meta/link tags
html = html.replace(/<(META|LINK)[^>]*>\s*/gi, '' ) ;

// Remove style tags
html = html.replace( /<STYLE[^>]*>([\s\S]*?)<\/STYLE[^>]*>/gi, '' ) ;
}}}"	Bug	closed	Normal	FCKeditor 2.6.3	Plugin : Paste from Word	FCKeditor 2.6.2	fixed	Confirmed Firefox3 Review+	
