2

我需要从 keyup 上的 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()但仍然不起作用。我的英文一点都不好,希望能简单解释一下。目标是从 tinymce 编辑器中抓取文本,甚至没有任何标签,甚至 DOCTYPE 并获取长度。我怎么能正确地做到这一点?

谢谢。

4

2 回答 2

1

使用 jQuery 使用这个 javascript 代码来获取编辑器的文本内容

var plain_text = $(tinyMCE.get('long_text').getBody()).text();
于 2013-04-10T07:57:13.620 回答
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 回答