CKEditor - zerstören einer Instanz, wenn die DOM-Knoten wurde gelöscht
Durch die Lektüre CKEditor-Dokumentation, ich sehe, Sie haben eine option zum zerstören einer Instanz mit CKEDITOR.instances.instanceName.destroy();
. Allerdings, wenn der DOM hat sich verändert, und die ganze WYSIWYG-DOM-Struktur entfernt wurde, bekomme ich die folgende Fehlermeldung im Chrome:
Uncaught TypeError: Cannot read property 'document' of null
...und die folgenden in Firefox:
i.contentWindow is null
Gibt es eine Möglichkeit dies zu umgehen?
Aufgrund der Art, wie die app aufgebaut ist (laden von Inhalten per AJAX), kann ich nicht nennen .destroy()
wenn die Elemente noch auf der Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie brauchen, um zu zerstören, die ckeditor-Objekt und das elemnets in den DOM NACH einem AJAX-Aufruf, Sie können tun es, indem Sie einen booleschen parameter nach dem Aufruf der Funktion destroy(true). Auf diese Weise wird es nicht versuchen, aktualisieren Sie die DOM:
Ich schrieb 2 Funktionen Steuern zu können, diese Dinge ein bisschen besser. Beachten Sie, dass ich habe deklariert eine variable, bevor diese Funktionen genutzt werden können, aber es gibt viel schlankeres Wege, aber dieser Ansatz war gut genug für die Zwecke die ich es brauchte(die ich verwenden und brauche nur ein Beispiel):
Ich auch prüfen, ob ein HTML-element, das ersetzt werden soll vorhanden ist, so dass ich nicht eine Fehlermeldung erhalten.
Kannst du einen der patches an http://dev.ckeditor.com/ticket/8226 und es wird funktionieren. Ich schlage vor, diese ein: http://dev.ckeditor.com/attachment/ticket/8226/8226_5.patch
patch
Datei, und all diese änderungen manuell. Nun, alle diese änderungen wurden unter der_source
Ordner. Ich gehe davon ausckeditor.js
ist irgendwie kompiliert/verkettet/aus komprimiert alle Dateien. Wie würde ich tun?exe
.Hatten wir dieses problem der Integration von CKEDITOR in GWT, in einem popup-dialog. Wenn der dialog zerstört wurde, CKEDITOR angehoben diesen Fehler "Cannot read property 'document' ist null." Die Lösung wurde zu zerstören, CKEDITOR, bevor Sie den dialog schließen. (Hatten wir erweitern die GWT-Klasse ckeditor in Ordnung, dies zu ändern - mit dem editor.destroy(true) syntax gegeben von Erik - Danke, Erik!)