Javascript jQuery Cleditor在keyup上获取textarea值
我用的是Cleditor。我想获取keyup上的值,并将文本插入另一个div中。cleditor附带change()事件,我目前正在下面的jsfiddle示例中使用该事件,但这与keyup不同。我希望在键入时更新div。我试过键控,但没用 这是我现在拥有的Javascript jQuery Cleditor在keyup上获取textarea值,javascript,jquery,wysiwyg,onkeyup,cleditor,Javascript,Jquery,Wysiwyg,Onkeyup,Cleditor,我用的是Cleditor。我想获取keyup上的值,并将文本插入另一个div中。cleditor附带change()事件,我目前正在下面的jsfiddle示例中使用该事件,但这与keyup不同。我希望在键入时更新div。我试过键控,但没用 这是我现在拥有的 $("#input").cleditor().change(function(){ var v = $('#input').val(); $('#x').html(v); }) 检查jsfiddle似乎cleditor隐藏了
$("#input").cleditor().change(function(){
var v = $('#input').val();
$('#x').html(v);
})
检查jsfiddle似乎
cleditor
隐藏了textarea
,并将其替换为iframe
(参见cleditor source的第203行)
因此,要实现您想要的功能,您只需访问生成的iframe
内容:
$("#input").cleditor();
$(".cleditorMain iframe").contents().find('body').bind('keyup', function(){
var v = $(this).text(); // or .html() if desired
$('#x').html(v);
});
更新以回应Tim的评论
这适用于Chrome和Firefox(我没有访问IE的权限):
更新2
用户能够找到更好的跨浏览器解决方案:我能够通过稍微修改编辑器的源代码来实现这一点- 在
refresh
方法(第801行)中,我修改了iframe文档的模糊事件处理程序
先前的
// Update the textarea when the iframe loses focus
($.browser.mozilla ? $doc : $(contentWindow)).blur(function() {
updateTextArea(editor, true);
});
修改为
// Update the textarea when the iframe loses focus or keyup happens
($.browser.mozilla ? $doc : $(contentWindow)).bind('blur keyup', function (e) {
updateTextArea(editor, true);
if (options.keyup && e.type === 'keyup')
options.keyup(editor.$area.val());
});
在初始化时传递的选项中,您可以定义
$("#element").cleditor({
keyup : function (text) {
alert(text);
// do something
}
});
希望这对任何人都有帮助
关于您是否尝试过使用CLEditor“.doc”属性 文档-当前正在iframe中编辑的文档对象。
这个fiddle解决方案适用于webkit浏览器、chrome和safari,但不适用于firefox或IE,我还没有弄清楚,但我想知道是否有人可以为这两种浏览器提供代码修复?谢谢,-tim petersonI在这里回答了您的后续问题:链接已断开,但是,还说:
这些属性应被视为只读。
。
$("#element").cleditor({
keyup : function (text) {
alert(text);
// do something
}
});
var inputDoc = $("#input").cleditor().doc;
$(inputDoc).keyup(function(){
var v = $('#input').val();
$('#x').html(v);
})