ad
unread,May 21, 2011, 7:37:11 PM5/21/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to RightJS
Hi, Nik!
I'd like to propose a little improvement to RRTE: can You add a button
with «Clear formatting» functionality?
I mean — not just make a plain text from pasted, but clean that text
from MS Word formatting, inline styles and font definitions etc.
I think it would be useful...
Tried to bind a function that cleans pasted HTML to Ctrl+V key
combination, but without success.
Console gives me an error: «TypeError: Result of expression
'b.find' [undefined] is not a function.» in right.js at line 7.
This error shows up when i press assigned key-combo.
I can clean pasted text and replace content of Rte textarea manually
in console though, without attaching a function to key kombination.
If this helps — this is my function, that i use to strip unnecessary
formatting:
function cleanHTML(str) {
str = str.replace(/<o:p>\s*<\/o:p>/g, "") ;
str = str.replace(/<o:p>.*?<\/o:p>/g, " ") ;
str = str.replace( /\s*mso-[^:]+:[^;"]+;?/gi, "" ) ;
str = str.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, "" ) ;
str = str.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;
str = str.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, "" ) ;
str = str.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;
str = str.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;
str = str.replace( /\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi, "\"" ) ;
str = str.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;
str = str.replace( /\s*tab-stops:[^;"]*;?/gi, "" ) ;
str = str.replace( /\s*tab-stops:[^"]*/gi, "" ) ;
str = str.replace( /\s*face="[^"]*"/gi, "" ) ;
str = str.replace( /\s*face=[^ >]*/gi, "" ) ;
str = str.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, "" ) ;
str = str.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
str = str.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<
$1$3" ) ;
str = str.replace( /\s*style="\s*"/gi, '' ) ;
str = str.replace( /<SPAN\s*[^>]*>\s* \s*<\/SPAN>/gi,
' ' ) ;
str = str.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;
str = str.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
str = str.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;
str = str.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
str = str.replace(/<\\?\?xml[^>]*>/gi, "") ;
str = str.replace(/<\/?\w+:[^>]*>/gi, "") ;
//str = str.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
//str = str.replace( /<H1([^>]*)>/gi, '' ) ;
//str = str.replace( /<H2([^>]*)>/gi, '' ) ;
//str = str.replace( /<H3([^>]*)>/gi, '' ) ;
//str = str.replace( /<H4([^>]*)>/gi, '' ) ;
//str = str.replace( /<H5([^>]*)>/gi, '' ) ;
//str = str.replace( /<H6([^>]*)>/gi, '' ) ;
//str = str.replace( /<\/H\d>/gi, '<br>' ) ; //remove this to take
out breaks where Heading tags were
//str = str.replace( /<(U|I|STRIKE)> <\/\1>/g, ' ' ) ;
//str = str.replace( /<(B|b)> <\/\b|B>/g, '' ) ;
str = str.replace( /<([^\s>]+)[^>]*>\s*<\/\1>/g, '' ) ;
str = str.replace( /<([^\s>]+)[^>]*>\s*<\/\1>/g, '' ) ;
str = str.replace( /<([^\s>]+)[^>]*>\s*<\/\1>/g, '' ) ;
//some RegEx code for the picky browsers
var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;
str = str.replace( re, "<div$2</div>" ) ;
var re2 = new RegExp("(<font|<FONT)([^*>]*>.*?)(<\/FONT>|<\/
font>)","gi") ;
str = str.replace( re2, "<div$2</div>") ;
str = str.replace( /size|SIZE = ([\d]{1})/g, '' ) ;
return str ;
}
I know that clipboard access is limited in browsers, but it can be
done via dialog I think (as it's done with the image insert button)...
And one more thing: in Safari 5.0.5 (OS X 10.5.8) Copy, Cut and Paste
buttons are inactive all the time.
In FF and Opera those buttons are active, as supposed to, but they
doesn't work. Seems like permissions issue.
Thanks,
Alex