2017-11-13 10 views
0

나는 여기에 게시 된 비슷한 질문이 있지만 아무도 내 문제 (또는 아마 내가 잘 개념을 이해하지 못하는 것입니다)에 대답하는 것 같았다. CKeditor 인스턴스 (질문은 here) 내에서 캐럿 위치를 가져오고 설정하려고합니다. 도움을 받아 범위와 오프셋을 사용하여이 목표를 달성해야한다는 것을 이해했습니다.CKEditor 4 : 커서/캐럿 위치를 저장하고 복원하는 방법은 무엇입니까?

그러나 지금 내 문제는이 위치를 어딘가에 저장하는 방법, 데이터베이스 및 캐럿 위치를 복원하는 방법을 모르겠다는 것입니다. 사용자가 문서를 수정하고 저장한다고 상상할 수 있습니다. 그가 판을 계속하기 위해 돌아 왔을 때, 문서는 적재되어야하고 캐럿은 마지막으로 알려진 위치로 되돌려 져야합니다.

그래서, 자바 스크립트에서 CKeditor의 캐럿 위치를 얻으려면 괜찮습니다. 내 범위 개체를 얻을 수 있습니다. 하지만 어떻게 저장합니까? 저장을 위해 서버로 보내려면 어떻게해야합니까? 어떻게 다시 얻을 수 있습니까? 끈처럼? 범위 또는 dom 노드를 직렬화 및 비 직렬화하는 메커니즘이 있습니까?

도움 주셔서 감사합니다.

답변

0

범위 또는 dom 노드를 직렬화 및 비 직렬화하는 메커니즘이 있습니까?

이 당신은 기본적으로 전류 범위 (선택)에 대한 책갈피를 만들어 CKEDITOR.dom.range.createBookmark를 사용할 수 있습니다 CKEditor 4의 bookmarks라는 메커니즘이며, 다음은 CKEDITOR.dom.range.moveToBookmark을 통해 복원 할 수 있습니다. 당신이 createBookmark(true) 같은 creatBookmarktrue을 통과해야

즐겨 찾기가 직렬화하려면 (그래서 당신은 DB에 그것으로 전체 내용을 저장하고 내용이로드 될 때 다음 선택을 복원 할 수 있습니다),이 북마크 노드, ID를 포함해야 함을 나타냅니다 범위를 복원하는 데 사용할 수 있습니다.

+0

도움 주셔서 감사합니다. 북마크를 사용하려고했지만 내 용도에 적합하지 않은 것 같습니다. 문서에 저장되지 않으므로 문서를 저장하고 다시로드 한 후에 사용할 수 있습니다. – Xosted

+0

@Xosted 유지 관리되지 않았다는 것을 무엇을 의미합니까? 직렬화 된 책갈피를 사용하는 경우 편집기에서 데이터를 가져올 때 보존해야합니다. – f1ames

+0

그렇다면 뭔가 잘못하고 있어야합니다. 책갈피와 문서를 모두 저장 한 다음 다시 책갈피에 도달하려고 시도했지만 실패했습니다. 좀 더 시험하고 다시 연락 할게. – Xosted