2017-11-13 5 views
0

Ich weiß, dass es hier ähnliche Fragen gibt, aber keine schien meine Problematik zu beantworten (oder vielleicht verstehe ich das Konzept nicht gut). Ich wollte zunächst die Caret-Position innerhalb einer CKeditor-Instanz bekommen und setzen (Frage ist here). Mit Hilfe verstand ich, dass ich Bereiche und Offsets verwenden musste, um dieses Ziel zu erreichen.CKEditor 4: Wie kann man die Cursor/Caret-Position speichern und wiederherstellen?

Allerdings ist mein Problem jetzt, dass ich nicht weiß, wie man diese Position irgendwo speichert, möglicherweise eine Datenbank und die Position des Caret wiederherstellen. Sie können sich vorstellen, dass ein Benutzer ein Dokument ändert und es speichert. Wenn er zurückkommt, um mit der Ausgabe fortzufahren, sollte das Dokument geladen werden und der Caret an die letzte bekannte Position zurückkehren.

Also, um die Caret-Position von CKeditor in Javascript zu bekommen, ist das in Ordnung. Ich kann mein Entfernungsobjekt bekommen. Aber wie kann ich es speichern? Wie sende ich es zum Speichern an den Server? Wie bekomme ich es zurück? Als eine Schnur? Gibt es Mechanismen zum Serialisieren und Deserialisieren von Bereichen oder Domänenknoten?

Vielen Dank für die Hilfe!

Antwort

0

Gibt es Mechanismen zum Serialisieren und Deserialisieren von Bereichen oder Dom-Knoten?

Es gibt einen Mechanismus bookmarks in CKEditor 4. genannt Sie CKEDITOR.dom.range.createBookmark verwenden können, die im Grunde ein Lesezeichen für den aktuellen Bereich erzeugt (Auswahl) und dann kann es über CKEDITOR.dom.range.moveToBookmark gestellt werden.

Um ein Lesezeichen serializable machen (so können Sie ganz zufrieden damit zu DB speichern und dann Auswahl wiederherstellen, wenn der Inhalt geladen wird), können Sie true zu creatBookmark wie createBookmark(true) passieren müssen, bedeutet dies, dass die Lesezeichen-Knoten-IDs enthalten, die kann verwendet werden, um die Reichweite wiederherzustellen.

+0

Vielen Dank für Ihre Hilfe. Ich habe versucht, Lesezeichen zu verwenden, aber es scheint, dass sie nicht für meinen Zweck geeignet sind. Sie werden nicht im Dokument gepflegt, damit sie nach dem Speichern und erneuten Laden des Dokuments verwendet werden können. – Xosted

+0

@Xosted was meinst du damit, dass sie nicht gepflegt werden? Wenn Sie serialisierte Lesezeichen verwenden, sollten diese beim Abrufen von Daten aus dem Editor beibehalten werden. – f1ames

+0

Wenn ja, dann muss ich etwas falsch machen. Ich habe sowohl Lesezeichen als auch Dokumente gespeichert und versucht, das Lesezeichen erneut zu erreichen. Ich werde noch mehr Tests machen und zu dir zurückkommen. – Xosted

Verwandte Themen