13

編集したデータを CKEditor インスタンスから取得して URL に投稿する方法がわかりません。

私はこれを見ています:

http://nightly.ckeditor.com/3995/samples/inlineall.html

変更を保存する方法がわかりません。新しく編集したデータを、編集中の要素の ID とともに PHP に投稿することはできますか?

これと同様に:

editor.on('configLoaded', function(){
    // do some stuff
});

私はこのようなことができることを望んでいました:

editor.on('clickAway', function(e){
    id = e.id();
    // do some ajax stuff
});

しかし、どこにも何も見つからないようです。

誰かがこれを行う方法を考え出しましたか?

ありがとうございました。

4

3 に答える 3

1

次の解決策を見つけました。インラインエディタのコンテンツをサーバーに保存するにはどうすればよいですか?

ぼかしイベントを使用しています

于 2012-12-20T16:32:34.747 に答える
0

上記の@clone45の回答を使用して変更しました。データはボタンを押して保存されSave、実行されたいくつかの変更が古いデータと新しいデータが比較された後にのみ保存されます。

インライン エディターの既存の保存ボタンをオーバーライドし、@clone45 の回答の警告部分のみを以下に含めます。

<script>

CKEDITOR.disableAutoInline = true;
$("div[contenteditable='true']").each(function(index) {
    var content_id = $(this).attr('id');
    var tpl = $(this).attr('tpl');
    var oldData = null;
    CKEDITOR.inline(content_id, {
        on: {
            instanceReady: function(event) {
                //get current data and save in variable
                oldData = event.editor.getData();
                // overwrite the default save function
                event.editor.addCommand("save", {
                    modes: {
                        wysiwyg: 1,
                        source: 1
                    },
                    exec: function() {
                        var data = event.editor.getData();
                        //check if any changes has been carried out
                        if (oldData !== data) {
                            oldData = data;
                            $.ajax({
                                    type: 'POST',
                                    url: 'process.php',
                                    data: {
                                        content: data,
                                        content_id: content_id,
                                        tpl: tpl
                                    }
                                })
                                .done(function(data) {
                                    alert('saved');
                                })
                                .fail(function() {
                                    alert('something went wrong');
                                });
                        } else
                            alert('looks like nothing has been changed');
                    }
                });
            }
        }
    });
});

</script> 

お役に立てれば!!

于 2018-01-17T17:53:10.297 に答える