cleditor 文档指出它确实有一个“更改”事件,它声称可以与“keyup”事件一起使用,但不幸的是,在我的测试中,它在 Firefox 7 中没有按预期工作(需要点击文本编辑器) .
jsfiddle:http: //jsfiddle.net/qm4G6/27/
代码:
var cledit = $("#input").cleditor()[0];
cledit.change(function(){
var v = this.$area.context.value;
$('#x').html(v);
});
还有另一个 StackOverflow 问题询问了同样的事情,其中用户 Ling 建议修改插件以添加您自己的功能:
Get content from jquery CLEditor
编辑:根据您对上述 SO 问题结果不起作用的评论,我修改了下面的代码。这适用于 IE9 和 IE9 的“IE8”开发者模式。http://jsfiddle.net/qm4G6/80/
$(document).ready(function(){
var cledit = $("#inputcledit").cleditor()[0];
$(cledit.$frame[0]).attr("id","cleditCool");
var cleditFrame;
if(!document.frames)
{
cleditFrame = $("#cleditCool")[0].contentWindow.document;
}
else
{
cleditFrame = document.frames["cleditCool"].document;
}
$( cleditFrame ).bind('keyup', function(){
var v = $(this).text();
$('#x').html(v);
});
});
另一个编辑:要获取 HTML,您必须在 iframe 中找到 body,例如$(this).find("body").html()
. 请参阅下面的代码。JSFiddle:http: //jsfiddle.net/qm4G6/84/
var cledit = $("#inputcledit").cleditor()[0];
$(cledit.$frame[0]).attr("id","cleditCool");
var cleditFrame;
if(!document.frames)
{
cleditFrame = $("#cleditCool")[0].contentWindow.document;
}
else
{
cleditFrame = document.frames["cleditCool"].document;
}
$( cleditFrame ).bind('keyup', function(){
var v = $(this).find("body").html();
$('#x').html(v);
});
$("div.cleditorToolbar, .cleditorPopup div").bind("click",function(){
var v = $( cleditFrame ).find("body").html();
$('#x').html(v);
});