我正在使用CLEditor所见即所得,并试图解决访问iframe内容和统计字符的问题(我知道如何不限制WYSIWYG上的字符,但我需要显示用户输入了多少字符的文本表示(不管生成了多少实际的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);
});发布于 2011-03-09 05:03:45
我知道你走错路了。您应该设置一个事件处理程序,在更改文本时触发事件。既然您使用的是jQuery,请看一看jQuery事件:http://api.jquery.com/category/events/。具体来说,请阅读.change()事件,因为我认为这是您想要使用的。将事件附加到对象(#edFrame),并指定激发该事件时要调用的函数。
您已经实现了一个繁忙的等待系统,它虽然工作,但远远不是最好的设计,将来可能会给您带来麻烦。
发布于 2015-07-02 10:20:33
在前面的评论之后,可以这样做:
$("#edFrame").cleditor().on('change', function () {
var t = $(this)[0].$area.val().length;
$(".limitCounter").text(t)
});请记住,显示的长度计算文本字符和格式标签。
https://stackoverflow.com/questions/5241550
复制相似问题