在keyup tinymce上返回文本长度

时间:2013-04-10 00:48:56

标签: javascript tinymce

我需要从keyup上的tinymce编辑器获取当前文本长度(只有没有html标签的文本长度)。我的工作是

  1. 使用getContent();
  2. 抓取内容
  3. 使用strip_tags(不是php但自定义js)
  4. 剥离标记
  5. 并返回文字长度。
  6. 外观:

    ...
    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()删除它,但仍然无法正常工作。我的英语一点都不好,我希望我能简单解释一下。目标是从tinymce编辑器获取文本,没有任何标签甚至DOCTYPE并得到长度。我怎么能这么做?

    感谢。

2 个答案:

答案 0 :(得分:1)

使用此javascript代码使用jQuery获取编辑器textcontent

var plain_text = $(tinyMCE.get('long_text').getBody()).text();

答案 1 :(得分: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
                };
            }