私がやりたいこと :
->プレーンなHTMLページをユーザーに表示する->ユーザーはそのページのテキストを強調表示することができます->ユーザーが次回ログインしたときに、ページ上の以前の(複数の)強調表示を取得して表示できるはずです。
私がしたこと :
Library / API:Rangyを使用しました。このiamを使用すると、テキストを選択して、ユーザーの好みの色で強調表示できます。
問題 :
シリアル化および逆シリアル化機能を試しましたが、(ページがリロードされた後に)逆シリアル化しようとすると、次のようなエラーが発生します。
シリアル化された範囲のルートノード(ec0c8cf0)とターゲットルートノード(d4997863)のチェックサムが一致しません
ページをリロードするたびに、新しいルートノードがあります。この場合、逆シリアル化を修正するにはどうすればよいですか?
JS-Fiddleを作成しました:demo / js-fiddle
これは何ですか-デモを確認すると、説明の最初の単語、つまり「お願いします」を選択します。テキストが強調表示され、シリアルも次のように表示されます。
0/3/1/3/0/1/1/2:9,0 / 3/1/3/0/1/1/2:9 {b3002d92}
だから私がしたことは、このシリアルをハードコーディングして、このようなページonLoad関数のdeserializeSelection関数に入れました:-
rangy.deserializeSelection('0/3/1/3/0/1/1/2:9,0/3/1/3/0/1/1/2:9{b3002d92}');
技術的には、ページが読み込まれるたびに、説明の中で「お願いします」を強調表示する必要があります。ただし、そうではありません。代わりに、上記のエラーをブロックで表示します。これを解決するのを手伝ってくれませんか。お願いします。ありがとう
追加:
1.私はrangyのシリアル化と逆シリアル化の方法を本当に理解していません。
2.ここからの私の非常に抽象的なロードマップは、ページのロード時にAJAX呼び出しを実行し、データベースからこのページのユーザーのすべての(シリアル化された)選択をフェッチし、それらを反復処理して逆シリアル化することです。
どんな助けでも、本当にありがたいです。ありがとうございました。