2012-07-20 4 views
16

Ich mache einen WYSYWYG HTML5-Editor Mit SWT, indem Sie das contentEditable Attribut des body-Tags auf true setzen.Undo und Redo in WYSYWYG contentEditable in SWT funktioniert nicht

Wenn ich einige Befehle wie document.execCommand('bold') ausführe, funktioniert es perfekt. Aber wenn ich versuche, eine Operation mit document.execCommand('undo') rückgängig zu machen, passiert nichts. Ich weiß nicht, ob ich irgendeinen Undo Manager einstellen muss oder so etwas machen soll. Kannst du mir bitte helfen ?

+2

Hilft dies http://stackoverflow.com/a/5062713/903454 – 5hahiL

Antwort

1

Dies scheint ein allgemeines Problem wie Google search will reveal zu sein. Die folgende Website enthält eine gute Kompatibilitätstabelle und eine Testdemo.

Sie haben auch die folgende Aussage auf der Demo-Seite:

Undo/Redo in IE funktioniert nicht. Das Problem ist, dass die Änderungen in der Textfläche auf der rechten Seite auch dem Undo/Redo Stack hinzugefügt werden. Dort wird keine Textarea in der endgültigen Version, so dass es nicht notwendig ist, das Problem zu lösen.

1

Nach this quirksmode table, Undo/Redo-Werke in allen gängigen Browsern, aber es hat diese Notiz:

Undo funktioniert in Safari, aber wenn Sie tun/Rückgängig zu oft Redo, es stürzt ab. Gelöst in 3. Wenn Sie Ihre eigenen Änderungen im bearbeitbaren Bereich vornehmen, funktioniert Undo/Redo weiterhin in Mozilla und Safari (obwohl es Ihre benutzerdefinierten Änderungen ignoriert), aber in IE und Opera funktioniert es nicht mehr.

Ich weiß nicht, wie SWT dies beeinflussen könnten, aber es könnte besser sein, zu verwenden

document.execCommand("undo", "", null) 

ExecCommand war schon immer sehr Buggy, und ich weiß nicht, viel über SWT, aber ich hoffe das hilft dir.