Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/12/2018, 08:48
Avatar de dAvidcA
dAvidcA
 
Fecha de Ingreso: septiembre-2009
Ubicación: /home/dev/
Mensajes: 73
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: script deja de funcionar con editor tinymce

Hola stevens82,

Los eventos (keydown, keypress, keyup...etc) en el editor tinymce se asocian de manera diferente ya que el textarea solo es utilizado para que tinymce 'pinte' su editor.

Lo correcto sería que tu función counter recibiera por parámetro el texto a realizar el conteo, así:

Código Javascript:
Ver original
  1. counter = function(value) {
  2.     if (value.length == 0) {
  3.         $('#wordCount').html(0);
  4.         $('#totalChars').html(0);
  5.         $('#charCount').html(0);
  6.         $('#charCountNoSpace').html(0);
  7.         return;
  8.     }
  9.  
  10.     var regex = /\s+/gi;
  11.     var wordCount = value.trim().replace(regex, ' ').split(' ').length;
  12.     var totalChars = value.length;
  13.     var charCount = value.trim().length;
  14.     var charCountNoSpace = value.replace(regex, '').length;
  15.  
  16.     $('#wordCount').html(wordCount);
  17.     $('#totalChars').html(totalChars);
  18.     $('#charCount').html(charCount);
  19.     $('#charCountNoSpace').html(charCountNoSpace);
  20. };


Así se asocian los eventos (keydown, keypress, keyup...etc) con tinymce:

Código Javascript:
Ver original
  1. tinymce.init({
  2.     selector: "#text",
  3.     setup: function(ed) {
  4.         ed.on('click', function(e) { counter(ed.getContent()); });
  5.         ed.on('change', function(e) { counter(ed.getContent()); });
  6.         ed.on('keydown', function(e) { counter(ed.getContent()); });
  7.         ed.on('keypress', function(e) { counter(ed.getContent()); });
  8.         ed.on('keyup', function(e) { counter(ed.getContent()); });
  9.         ed.on('blur', function(e) { counter(ed.getContent()); });
  10.         ed.on('focus', function(e) { counter(ed.getContent()); });
  11.     }
  12. });

Un ejemplo funcional de tu código: http://jsfiddle.net/dAvidcA/xpvt214o/999109/

Saludos.