0

我正在使用wysihtml5插件,将富编辑器添加到我的文本区域。

所以,插件变成了这样:

<textarea></textarea>

进入这个:

<textarea style="display:none;"></textarea>
<iframe>
  <header>
  <header>
  <body class="wysihtml5-editor">
  </body>
</iframe>

我在这里找到了一些信息,以添加字符计数器:

  wysihtml5Textarea.data("wysihtml5").editor.observe("load", function() {
    wysihtml5Textarea.data("wysihtml5").editor.composer.element.addEventListener("keyup", function() {
      var wysihtml5_cur_length = 0;
      wysihtml5_cur_length = $('.wysihtml5-editor').val().length;
      alert(wysihtml5_cur_length);
    });
  });

根据插件作者的说法:

解决方案是不在 textarea 上监听 keyup 事件,而是在 's body

所以这就是我所做的,我听了 iframe > html > body:.wysihtml5-editor

但是现在,我收到以下错误:

Uncaught TypeError: Cannot read property 'length' of undefined

所以这意味着 jQuery 部分由于某种原因没有定位主体(它确实定位了不在 iframe 内的元素)。

可能是什么问题,有哪些可能的解决方案?

在此处输入图像描述

4

1 回答 1

1

You can get at the iframe content via contentWindow

Something like this works for me:

var editor_body = $(".wysihtml5-sandbox").contentWindow.document.body;
$(editor_body).keyup(function() {
  console.log($(this).text());
});
于 2013-05-02T22:45:33.367 回答