0

我正在使用CLEditor WYSIWYG并试图做一个解决方法来访问 iframe 内容并计算字符(我知道关于如何不应该限制所见即所得字符的整个辩论,但我需要显示多少字符的文本表示用户已输入(不在乎生成了多少实际 HTML)。我能够通过使用setInterval()作为 CLEditor 更改的事件挂钩来实现字符数,仅在模糊时触发。

我真正的问题:

使用 setInterval() 对性能有害还是我应该使用另一种方法来轮询更改的文本?

这是我目前使用的方法:

       function checkChange(){
            $(document).ready(function() {
                var t = $("#edFrame").contents().find("body").text().length;

                $(".limitCounter").text(t);

            });
        }


        $(document).ready(function () {

            $(".wysiwyg").cleditor();


            setInterval('checkChange()', 50);


        });
4

2 回答 2

1

海事组织你正在以错误的方式解决这个问题。您应该设置一个事件处理程序,在文本更改时触发一个事件。由于您使用的是 jQuery,请查看 jQuery 事件:http ://api.jquery.com/category/events/ 。具体来说,请阅读该.change()事件,因为我认为这是您想要使用的。您将一个事件附加到您的对象 ( #edFrame),并指定在该事件被触发时要调用的函数。

您已经实现了一个忙碌等待系统,虽然它可以工作,但远非最佳设计,并且将来可能会让您头疼。

于 2011-03-09T05:03:45.650 回答
0

根据之前的评论,可以这样做:

$("#edFrame").cleditor().on('change', function () { 
   var t = $(this)[0].$area.val().length;
   $(".limitCounter").text(t)
});

请记住,显示的长度计算文本字符以及格式标记。

于 2015-07-02T10:20:33.300 回答