2

キーアップ時にtinymceエディターから現在のテキストの長さ(htmlタグなしのテキストの長さのみ)を取得する必要があります。私がすることは

  1. を使用してコンテンツを取得しますgetContent();
  2. strip_tags (php ではなくカスタム js)を使用してタグを削除します。
  3. テキストの長さを返します。

見る:

...
setup : function(ed) {
        ed.onKeyUp.add(function(ed, e) {
        var text = strip_tags(tinyMCE.get('long_text').getContent(),'<img>');
        console.log(text.length);
        });
}
...

私が得るのは次の長さです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
this is tag-stripped text

次のように、DOCTYPEでさえもタグなしでテキストの長さだけが必要です:

this is tag-stripped text

しかし、問題はDOCTYPEを削除しないことです。使用して削除しようとしましregex replace()たが、まだ機能しません。私の英語はまったく得意ではありません。簡単に説明していただければ幸いです。目標は、DOCTYPE でさえタグなしで tinymce エディターからテキストを取得し、長さを取得することです。どうすればそれを正しく行うことができますか??

ありがとう。

4

2 に答える 2

1

あなたが試すことができます

ed.onKeyDown.add(function(ed, evt) {

  console.log($(ed.getBody()).text().length);

}

いずれにせよ、それがうまくいかない場合は、試してみてください。

 ----
 console.log(getStats('long_text').chars);
  -----

// Returns text statistics for the specified editor by id
            function getStats(id) {
                var body = tinymce.get(id).getBody(), text = tinymce.trim(body.innerText || body.textContent);

                return {
                    chars: text.length,
                    words: text.split(/[\w\u2019\'-]+/).length
                };
            }
于 2013-04-11T13:29:21.380 に答える