cakephp+;ckeditor…如何绑定keyup事件

cakephp+;ckeditor…如何绑定keyup事件,cakephp,ckeditor,cakephp-2.0,Cakephp,Ckeditor,Cakephp 2.0,我想使用ajax将数据立即存储到ckeditor中的文件中。我正在使用cakephp,在我的视图文件中有以下代码来测试ckeditor是否成功绑定到js事件 <?php echo $this->Html->script('ckeditor/ckeditor'); echo $this->Form->create('Post', array('action' => 'edit')); echo $this->Form->input('titl

我想使用ajax将数据立即存储到ckeditor中的文件中。我正在使用cakephp,在我的视图文件中有以下代码来测试ckeditor是否成功绑定到js事件

    <?php
echo $this->Html->script('ckeditor/ckeditor');
echo $this->Form->create('Post', array('action' => 'edit'));
echo $this->Form->input('title',array('id'=>'posttitle'));
echo $this->Form->input('id', array('value'=>$originalid,'type' => 'hidden'));
echo $this->Form->input('username', array('value'=>$creator,'type' => 'hidden'));
echo $this->Form->textarea('body',array('class'=>'ckeditor','id'=>'postbody'));
echo $this->Form->end('Done Editing');

$this->Js->get('#postbody');
echo $this->Js->event('click','alert("hi")');
    ?>


问题是,当我使用title的输入绑定代码时,代码运行良好,但对于包含ckeditor的textarea,代码不起作用。

我有点困惑,部分原因是因为CakePHP JS的东西。通过keyup事件,您试图实现什么目标?是否希望在发生任何更改时始终保存,还是希望在每次编辑器更改时更新textarea内容,或者。。。?在我看来,有更好的方法可以做到这两个方面,但要做什么在很大程度上取决于您想要实现什么(一些更改可能在没有keyup事件的情况下发生,例如undo/redo/bold/add table)

在CKE中,您没有将事件附加到基础元素,而是它有自己的事件模型,非常方便。在本机JS中,您会听到如下关键事件:

editor.on('key', function(e)
{
    console.log("Ponies");
});

那里有
editor
将是您的ckeditor实例。这与点击事件非常相似

这可能是因为ckeditor在实时中修改或生成另一个textarea(如果不是其他东西的话)。Chrome或Firefox DOM inspector在文本区域的位置显示了什么?是的,查找html的外观,ckeditor确实用自己的id.thanx替换了文本区域作为注释。我认为问题在于没有放置简单的文本区域。有一个iframe替换了textarea,并且没有keyup事件能够绑定到它。您不能为此使用本机JS吗?我使用了..这也无法获取textarea..:(