也許這只是晚了,但爲什麼很難找到一種方法來做到這一點?我的主要目標是增加一個jQuery滑塊,以顯示用戶正在用盡最大文本長度。我有理由不顯示確切的字符數,但這是有效的字符計數(包括所有的HTML標記)。如何使用jQuery監聽CKEditor事件setData?
$("#desc").ckeditor(function() {
ITDUtil.log("ckeditor loaded")
// $(this).bind('setData.ckeditor', function(e){
//
// console.log(e.val().length);
// $("#desc_character_slider").slider("option", "value", e.val().length);
//
// });
// var editor = $('#desc').ckeditorGet();
// alert(editor.checkDirty());
// how to properly set an event listener for setData?
$(this).bind("setData.ckeditor", function(e){
console.log(e.val().length);
});
// is it this.on("setData",function(){}) ?
// "setData.ckeditor"?
},
{
toolbar : 'custom'
}
);
UPDATE:這是我落得這樣做,但由於火災的setTimeout每100ms檢查內容的長度是否已經改變了它是不是不優雅,但它的作品。我有一種感覺,setData事件不是我應該聽的。粘貼和鍵盤充足嗎?
function updateCharCounts() {
$("#desc_character_slider").slider("option", "value", $("#desc").val().length);
$("#culture_character_slider").slider("option", "value", $("#culture").val().length);
setTimeout(updateCharCounts, 100);
}
其他的研究發現,「使用setData」不可用的情況下,如果你CONSOLE.LOG editorObj._.events
。這是CKEditor中的一個主要缺陷;希望文檔更好,插件會非常方便。需要盯着可用於獲取靈感的插件。
聽取鍵控和粘貼事件是否足夠?當您標記某些樣式並僅使用按鈕時怎麼辦?你基本上需要聽取所有的信息,以確保你得到了一切,在這種情況下,爲什麼不直接使用setTimeout方法來節省自己的麻煩?
更新2:另一個需求是限制各種服務的字符,儘管這可以在後端完成,只需截斷,總是很好讓FE同步。
嘿;你是否設法解決這個問題?自那時起CKEditor發生了很大變化,現在有更好的選擇。 – Nenotlep 2014-04-01 12:10:28