6
votes

Comment remplacer le gestionnaire pour un bouton de CKeditor?

Je voudrais avoir un gestionnaire personnalisé pour le bouton Enregistrer.

Comment puis-je remplacer la commande par défaut?


0 commentaires

5 Réponses :


4
votes
CKEDITOR.plugins.registered['save']=
    {
     init : function( editor )
     {
        var command = editor.addCommand( 'save',
           {
              modes : { wysiwyg:1, source:1 },
              exec : function( editor ) {
                 //YOUR CODE
              }
           }
        );
        editor.ui.addButton( 'Save',{label : 'YOUR LABEL',command : 'save'});
     }
    }

0 commentaires

2
votes

Si vous souhaitez remplacer la commande économiser em> pour une seule instance, vous pouvez essayer le code suivant:

var editor = $('#myTextarea').ckeditorGet(); // Retrieving CKeditor instance with jQuery
editor.getCommand('save').exec = function(editor) { 
    // Do whatever you need to
    ...
    return true;
};


1 commentaires

Si vous écrasez la fonction EXEC comme celle-ci, elle sera appelée sans paramètres. Mais puisque vous avez normalement la variable éditeur dans la portée extérieure, vous pouvez toujours travailler avec elle. N'oubliez pas de laisser le paramètre éditeur dans la définition de la fonction, car il écraserait votre éditeur Editeur .



11
votes

the Réponse supérieure actuelle foiré la barre d'outils de la barre d'outils pour moi (mettre le bouton Enregistrer À la fin), et le Autre réponse n'a pas fonctionné dans CKEdititor V4.

Voici comment le faire dans ckeditor 4:

html: xxx

javascript: xxx


0 commentaires

1
votes
function configureEditor(id) {
    var editor = CKEDITOR.replace(id);
    editor.on("instanceReady", function () {
        // overwrite the default save function
        editor.addCommand("save", {
            modes: { wysiwyg: 1, source: 1 },
            exec: function () {
                // get the editor content
                var theData = editor.getData();
                alert("insert your code here");
            }
        });
        editor.ui.addButton('Save', { label: 'My Save', command: 'save', enabled: 'true' });
        var saveButton = $('#cke_' + id).find('.cke_button__save');
        saveButton.removeClass('cke_button_disabled');
    });
}

0 commentaires

0
votes

in ckedititor 4, le plugin de sauvegarde est censé être annulé. Si vous ne savez pas, on peut toujours jeter un coup d'œil sur le Source . Vous pouvez annuler l'événement et appliquer votre propre logique dans un gestionnaire, comme dans cet exemple:

//assuming editor is a CKEDITOR.editor instance
editor.on('save', function (event) {
    event.cancel();
    //your custom command logic
    //(you can access the editor instance through event.editor)
});


0 commentaires