Pasta TinyMCE como texto sin formato

Este es uno de los problemas comunes con las RTE en la web. ¿Podría por favor guiarme a través de cómo:

  1. Pegar como el TEXTO LLANO
  2. Conserva el HTML pero elimina el estilo WORD / HTML

Quiero hacerlo directamente en paste (paste_preprocess callback), sin abrir los diálogos provistos por Pegar complementos.

¿Alguna idea / experiencia?

Gracias,

Imran

Esto es lo que hago para obtener pegar texto sin formato.

1. ajuste paste_preprocess (en tinymce init)

paste_preprocess : function(pl, o) { //example: keep bold,italic,underline and paragraphs //o.content = strip_tags( o.content,'

' ); // remove all tags => plain text o.content = strip_tags( o.content,'' ); },

2. function strip_tags (en el documento principal)

 // Strips HTML and PHP tags from a string // returns 1: 'Kevin van Zonneveld' // example 2: strip_tags('

Kevin van Zonneveld

', '

'); // returns 2: '

Kevin van Zonneveld

' // example 3: strip_tags("Kevin van Zonneveld", ""); // returns 3: 'Kevin van Zonneveld' // example 4: strip_tags('1 < 5 5 > 1'); // returns 4: '1 < 5 5 > 1' function strip_tags (str, allowed_tags) { var key = '', allowed = false; var matches = []; var allowed_array = []; var allowed_tag = ''; var i = 0; var k = ''; var html = ''; var replacer = function (search, replace, str) { return str.split(search).join(replace); }; // Build allowes tags associative array if (allowed_tags) { allowed_array = allowed_tags.match(/([a-zA-Z0-9]+)/gi); } str += ''; // Match tags matches = str.match(/(<\/?[\S][^>]*>)/gi); // Go through all HTML tags for (key in matches) { if (isNaN(key)) { // IE7 Hack continue; } // Save HTML tag html = matches[key].toString(); // Is tag not in allowed list? Remove from str! allowed = false; // Go through all allowed tags for (k in allowed_array) { // Init allowed_tag = allowed_array[k]; i = -1; if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');} if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');} if (i != 0) { i = html.toLowerCase().indexOf('

En realidad, ahora puedes hacer esto:

 plugins: 'paste', ... paste_auto_cleanup_on_paste : true, paste_remove_styles: true, paste_remove_styles_if_webkit: true, paste_strip_class_attributes: true, 

El crédito va a: http://www.miuaiga.com/index.cfm/2010/1/7/New-TinyMCE-lets-you-paste-as-plain-text-automatically

Estaba buscando todo esto … Para TinyMCE, puede usar la pasta integrada como comportamiento de texto. Simplemente configure el init de tinymce con los valores a continuación.

Fuente: jerome.chevreau, http://www.tinymce.com/forum/viewtopic.php?id=6788

 //add paste plugin plugins : 'paste', //Keeps Paste Text feature active until user deselects the Paste as Text button paste_text_sticky : true, //select pasteAsPlainText on startup setup : function(ed) { ed.onInit.add(function(ed) { ed.pasteAsPlainText = true; }); } 

Ahora hay una nueva opción que reemplaza todo lo anterior:

 tinymce.init({ paste_as_text: true }); 

Ver http://www.tinymce.com/wiki.php/Configuration:paste_as_text

o en django-tinymce, en settings.py:

 TINYMCE_DEFAULT_CONFIG = { 'paste_as_text': True, } 

Usé esto:

  oninit: function (ed) { ed.pasteAsPlainText = true; } 

junto con

 paste_text_sticky: true