[Plugin] Contador de caracteres no SCEditor

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Plugin] Contador de caracteres no SCEditor

Mensagem por Shek em 02/09/15, 11:42 am


Contador de caracteres no SCEditor
O objetivo deste plugin é calcular a quantidade de caracteres digitados mais os caracteres restantes. Se você exceder o limite de caracteres, provavelmente você receberá um aviso "você excedeu o limite estipulado". O objetivo é mantê-lo ciente de sua contagem de caracteres enquanto você digita.
Características e aplicação
Criador: Ange Tuteur
Versão: 1.0
Versão: Todas as versões
Resultado da aplicação
Local de instalação
A instalação é única, e pode ser feita apenas criando um novo javascript. Para isso, basta acessar Painel de Controle >> Módulos >> HTML e Javascript >> Gestão dos códigos Javascript >> Criar um novo javascript >> e Investimento, marque Para os tópicos ou para Todas as páginas como preferir. Feliz
Código:
$(function() {
  if (!document.getElementById('text_editor_textarea')) return; // no textarea ? better not continue :(
 
  // definir dados globais para ser armazenada em cache e reutilizada
  window.$fa_char = {
    area : document.getElementById('text_editor_textarea'), // mensagem da caixa de mensagem
    current : 0, // caracteres digitados atuais
    maximum : /page_profil=signature/.test(window.location.search) ? 1000 : 60000, // caracteres máximo permitido
    used : null, // cache de nó para caracteres usados
    remain : null, // cache de nó para caracteres restantes
    instance : null, // sceditor instance
 
    // calcular os caracteres utilizados e restante
    calculate : function() {
      $fa_char.current = ($fa_char.instance ? $fa_char.instance.val() : $fa_char.area.value).length; // get the message length
      $fa_char.used.innerHTML = $fa_char.current; // Atualiza a contagem atual
      $fa_char.remain.innerHTML = '<span ' + ($fa_char.current >= $fa_char.maximum ? 'style="color:#F00"' : '') + '>' + ($fa_char.maximum - $fa_char.current) + '</span>'; // atualizar os caracteres restantes
    }
  };
 
  var node = document.createElement('DIV'); // recipiente para os dados chararacter
 
  node.id = 'faCharCounter'; // o ID é usado principalmente para estilos definidos pelo usuário
  node.innerHTML = '<span id="faCharUsed">0</span> caracteres utilizados de ' + $fa_char.maximum + ' (<span id="faCharRemain" style="color:#090">' + $fa_char.maximum + '</span> restantes)'; // definir os nossos dados de caráter
  $fa_char.area.parentNode.insertBefore(node, $fa_char.area); // inserir o recipiente antes da área de texto
 
  // atualizar os caches nó de modo que não tem que continuo recebendo esses elementos
  $fa_char.used = document.getElementById('faCharUsed');
  $fa_char.remain = document.getElementById('faCharRemain');
 
  // executar outro doc pronto para corresponder-se com o sceditor
  $(function() {
 
    // dependendo se o sceditor estiver presente, um destes eventos será ligado
    if ($.sceditor) {
      var container = $('.sceditor-container');
      $fa_char.instance = $($fa_char.area).sceditor('instance');
      $('textarea', container)[0].oninput = $fa_char.calculate; // source
      $('iframe', container).contents()[0].body.oninput = $fa_char.calculate; // wysiwyg
    } else $fa_char.area.oninput = $fa_char.calculate;
 
    $fa_char.calculate(); // obter a contagem de caracteres atual no carregamento da página
  });
});
avatar

Shek
Moderadeiro
Moderadeiro

Masculino
Inscrito dia : 11/04/2009
Mensagens : 17664
Pontos Ativos : 21855

Ver perfil do usuário http://www.shiftactif.com https://go.topicit.net/ZosT/61pMt1mPsG https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


Permissão deste fórum:
Você não pode responder aos tópicos neste fórum