Estoy usando TinyMCE en un área de texto en mi página. Estoy tratando de obtener el caracter y el conteo de palabras y el texto en mecanografiado. He estado probando varias versiones para que funcione correctamente, pero sin éxito. Aquí está la última versión buggy:TinyMCE Número de caracteres incorrectos
$().ready(function() {
$('textarea.tinymce').tinymce({
// Location of TinyMCE script
script_url: 'jscripts/tiny_mce/tiny_mce.js',
// General options
theme: "advanced",
plugins: "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",
// Theme options
theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: true,
// Example content CSS (should be your site CSS)
content_css: "css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url: "lists/template_list.js",
external_link_list_url: "lists/link_list.js",
external_image_list_url: "lists/image_list.js",
media_external_list_url: "lists/media_list.js",
// Replace values for the template plugin
template_replace_values: {
username: "Some User",
staffid: "991234"
},
//setup:'tmceWordcount'
setup: function(ed) {
ed.onKeyUp.add(function(ed, e) {
//Following does not work correctly
//var strip = (tinyMCE.activeEditor.getContent()).replace(/(<([^>]+)>)/ig,"");
//Neither does the code below
var strip = (tinyMCE.activeEditor.getContent()).replace(/<[^>]+>/g, "");
var text = strip.split(' ').length + " Words, " + strip.length + " Characters"
tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text);
});
}
});
});
Aquí está mi ejemplo. Estoy ingresando la primera palabra como: Me
Cuando escribo la primera palabra, muestra los caracteres y la palabra correctamente. Pero tan pronto como toco el espacio para ingresar la siguiente palabra, muestra que los personajes son 8. ¿Cómo? IMO, también incluye las etiquetas HTML. El código HTML es el siguiente para el texto introducido anteriormente:
<p>Me </p>
espero salida sea 1 Palabra y 3 caracteres (2 personajes + 1 plaza). Pero me muestra 5 caracteres más. ¿Cómo está sucediendo esto? & ¿cómo puedo detenerlo? Si ingresa la siguiente palabra, tan pronto como comience a escribir, muestra el recuento correcto de caracteres. Pero cuando alcanzas el espacio nuevamente, agrega más caracteres. Entonces, este problema parece estar ocurriendo cada vez que se presionan los espacios &. ¿Cómo se puede arreglar esto?
Hola, gracias por el código. Intenté ambos códigos enumerados arriba y el mismo problema persiste. Por alguna extraña razón, no está eliminando las etiquetas HTML. Los está considerando. Debería haber tomado el texto tal como se ingresó, pero en cambio, está considerando la fuente HTML. Incluso lo apliqué dos veces, pero aún con el mismo efecto. Si prueba este código, verá que está alertando al resultado HTML incluso después de que haya aplicado la función de reemplazo: 'var strip = (tinyMCE.activeEditor.getContent()).reemplazar (/ <\/?[^>] +>/gi, ''); \t \t \t \t \t \t alerta (strip.replace (/ <\/?[^>] +>/gi '')); '¿Alguna idea sobre cómo solucionar este problema? – Devner