2016-08-11 11 views
1

私は単語カウントdivを持っているが、単語カウントを表示しますが、wordCountプラグインを使用していませんが、単語を数えるために正規表現を使用しています。tinymceの単語の数を取得

しかし、私が箇条書きを追加したり、既に入力されたテキストに太字を適用すると、この値は正しく表示されません[箇条書きを使用しているときに1単語しか入力していないのに、一方、太字、イタリック、アンダーライン、または箇条書きを使用している場合や、wordCountプラグインを使用してスタウトバーの外に出力を使用する場合は、正規表現で何を行うべきかを提案できます[

tinymceConfig = { 
mode:"exact", 
elements:"essay", 
menubar: false, 
statusbar: false, 
plugins: "autoresize", 
content_css : '../../theme/css/Language/editor.css', 
toolbar : "bold italic underline bullist", 
resize:"height", 
autoresize_max_height: 325, 
setup : function(editor) { 
    if ($('#essay').prop('readonly')) { 
     editor.settings.readonly = true; 
    } 

    editor.on('keydown', function (evt) { 
     var wordCount = 0; 
     var valid_keys = [8, 46]; 
     text = editor.getContent().replace(/(< ([^>]+)<)/g, '').replace(/\s+/g, ' '); 
     text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 
     wordCount = text.split(' ').length-1; 

     if(wordCount >= Helpers.constants.MAX_WORDS && valid_keys.indexOf(evt.keyCode) == -1) 
     { 
      evt.preventDefault(); 
      Helpers.prompt('You have reached the maximum word limit.'); 
      //evt.stopPropagation(); 
      return false; 
     } 
    }); 

    editor.on('keyup', function (evt) { 
     var text = ''; 
     clearTimeout(saveEssayIntervalId); 
     saveEssayIntervalId = setTimeout(function() { 
      saveEssay('silent'); 
     }, 3000); 

     text = editor.getContent().replace(/(< ([^>]+)<)/g, '').replace(/\s+/g, ' '); 
     text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 
     var wordCount = text.split(' ').length; 

     $("#essayContainer .textAreaAfter").html("[ Words entered: "+wordCount+" ]"); 
    }); 
} }; 
tinyMCE.init(tinymceConfig); 
:私のワードカウントdivの中にこのような場合]ここ

でコードです

答えて

2

TinyMCEのWordCountプラグインから現在の単語数を得ることができます。これはあなた自身で計算する必要はありません。

theEditor = tinymce.activeEditor; 
wordCount = theEditor.plugins.wordcount.getCount(); 
0

私はマイケルの答えを行うと私が手:

Uncaught TypeError: tinyMCE.activeEditor.plugins.wordcount.getCount is not a function

+0

と同じ問題を持つtinymce(すべて小文字)を使用しています...私はこのようにたくさん得ています異なるバージョンや何かのコード間の主な違いです。 –

+0

var wordCount = tinyMCE.get( "your_editor_id"))。plugins.wordcount.getCount(); – Yovav

1

古いTinyMCEをバージョンを持っている場合は、あなたがアクティブのために、あなたが書くことができ、この場合には、getCount()機能を持たないかもしれませんエディタのオブジェクトを渡してください:

関連する問題