javascript - ejemplos - Pasta TinyMCE como texto sin formato
wysiwyg editor free (5)
Este es uno de los problemas comunes con las RTE en la web. ¿Podría por favor guiarme a través de cómo:
- Pegar como el TEXTO LLANO
- 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
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,
}
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;
});
}
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,''<b><u><i><p>'' );
// 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 <b>van</b> <i>Zonneveld</i>''
// example 2: strip_tags(''<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>'', ''<p>'');
// returns 2: ''<p>Kevin van Zonneveld</p>''
// example 3: strip_tags("<a href=''http://kevin.vanzonneveld.net''>Kevin van Zonneveld</a>", "<a>");
// returns 3: ''<a href=''http://kevin.vanzonneveld.net''>Kevin van Zonneveld</a>''
// 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(''</''+allowed_tag) ;}
// Determine
if (i == 0) { allowed = true;
break;
}
}
if (!allowed) {
str = replacer(html, "", str); // Custom replace. No regexing
}
}
return str;
}
Usé esto:
oninit: function (ed) {
ed.pasteAsPlainText = true;
}
junto con
paste_text_sticky: true