-1

ckeditorのデータをajaxを使って瞬時にファイルに保存したいです。私は 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")');
    ?>

問題は、タイトルの入力でバインドするとコードが正常に機能することですが、ckeditorを含むテキストエリアでは機能しません。

4

1 に答える 1

0

CakePHP JSのせいもあって、少し混乱しています。キーアップイベントで何を達成しようとしていますか?変更が発生したときに常に保存しますか、それともエディターが変更されるたびにテキストエリアのコンテンツを更新しますか...?私の意見では、これよりも両方を行うためのより良い方法がありますが、何をするかは、達成したいことによって大きく異なります(たとえば、キーアップイベントなしでいくつかの変更が発生する可能性があります。たとえば、undo / redo / bold / add tableを考えてください)。

CKEでは、基になる要素にイベントをアタッチするのではなく、非常に便利な独自のイベントモデルを備えています。ネイティブJSでは、次のような主要なイベントを聞くことになります。

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

editorckeditorインスタンスがあります。クリックイベントの場合も非常によく似ています。

于 2012-12-09T16:34:55.783 に答える