2015-04-02 2 views
2

Y at-il un moyen de supprimer uniquement le dernier instantané dans la pile d'annulation CKEditor ou puis-je le remplacer par un autre. Devrais-je l'implémenter seul?Comment ne rejeter que le dernier élément de CKEditor undo stack?

Exemple:

Étape 1

Étape 2 --should être retiré et remplacé par l'étape 3 (sur la situation donnée)

Étape 3 - doit devenir l'étape 2

Cette La fonctionnalité doit être disponible uniquement si un événement spécial se produit.

Répondre

3

Si vos clichés undo sont le résultat d'actions de l'utilisateur, à la suite de cette façon:

  1. Étape 1.
  2. Étape 2.
  3. CKEDITOR.instances.editor.fire('lockSnapshot')
  4. Étape 3.
  5. CKEDITOR.instances.editor.fire('unlockSnapshot')

Bien sûr, vous devez détecter wh A partir et tirer le bon événement au bon moment.

Si des modifications au contenu sont faits à partir du code, événement editor#updateSnapshot serait encore mieux:

function() { 
    editor.fire('saveSnapshot'); 
    editor.document.body.append(...); 
    // Makes new changes following the last undo snapshot a part of it. 
    editor.fire('updateSnapshot'); 
    .. 
} 
+0

Mais si je vais avoir une image prise et que vous souhaitez pop (supprimer). Je ne peux pas détecter quand verrouiller l'instantané? – rpet

+1

Vous ne pouvez pas le faire apparaître. Vous pouvez le remplacer en utilisant 'editor # updateSnapshot'. Mais nous ne savons pas assez ce que vous voulez réaliser (l'image plus large), il est donc difficile de dire si c'est la bonne option. Peut-être que vous avez besoin de faire quelque chose de très différent. – Reinmar

+0

Pourriez-vous fournir un échantillon étendu? C'est à dire. HTML correspondant à chaque étape. – oleq