9

私はCKeditorを使用して、ユーザーがログインするとページのコンテンツをインライン編集できるようにしています。

以下を使用してデータにアクセスできることを知っています。

var data = CKEDITOR.instances.editable.getData();

しかし、データベースを更新できるように、データをスクリプトに送信する方法がわかりません。誰かが要素の選択を解除するたびにスクリプトが実行されると便利contenteditableですが、それが可能かどうかはわかりません。

どんなヒントも素晴らしいでしょう!:)

私のサイトはphp/mysqlを使用して構築されています。

4

3 に答える 3

20

このようなもの:

CKEDITOR.disableAutoInline = true;

CKEDITOR.inline( 'editable', {
    on: {
        blur: function( event ) {
            var data = event.editor.getData();
            // Do sth with your data...
        }
    }
} );

これは、次のような他のインタラクションでは機能しないことに注意してください。ユーザーが呼び出しeditor.setData()た、またはユーザーが編集中にWebページを閉じた。その場合、内容は失われます。私があなたなら、定期的に新しいデータをチェックしたいと思います。

CKEDITOR.disableAutoInline = true;

var editor = CKEDITOR.inline( 'editable', {
    on: {
        instanceReady: function() {
            periodicData();
        }
    }
} );

var periodicData = ( function(){
    var data, oldData;

    return function() {
        if ( ( data = editor.getData() ) !== oldData ) {
            oldData = data;
            console.log( data );
            // Do sth with your data...
        }

        setTimeout( periodicData, 1000 );
    };
})();
于 2012-12-18T09:40:44.810 に答える
3
CKEDITOR.inline('editable'  ,{
        on:{
            blur: function(event){
                if (event.editor.checkDirty())
                    console.log(event.editor.getData());
            }
        }
    });

これを試して。

于 2014-02-21T08:08:31.600 に答える
1

「blur」イベントが役立つようです: http ://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#event:blur

于 2012-12-17T20:58:33.263 に答える