Rangyで蛍光ペンモジュールを使用しています。
いくつかのhtmlを持つdiv
要素があります。htmlは実際にはajaxを使用してファイルからロードされます。このロードを行うボタンがあります。
テキストが読み込まれると、表示されているhtmlの一部を選択して、[ハイライト]ボタンを押すことができます。これにより、いくつかのRangyコードが呼び出され、必要に応じてテキストが強調表示されます...
//called on document load
rangy.init();
cssApplier = rangy.createCssClassApplier(highlightClassName, { normalize: true });
highlighter = rangy.createHighlighter(document, "TextRange");
highlighter.addClassApplier(cssApplier);
//called on "Highlight" button click
highlighter.highlightSelection(highlightClassName, selection);
複製するために、最初のハイライトの大部分を選択してください。
次に、[HTMLの読み込み]ボタンをクリックして、HTMLを再読み込みします。予想通り、ハイライトは消えました。しかし今、私は別のテキストを選択します。これは、私が行った最初のハイライトと重なっています。「ハイライト」ボタンを押すと、どういうわけかハイライトは前のハイライトのものになります。なぜこうなった?
マージと関係があるはずですが、その理由がわかりません。rangy.getSelection()
JSをデバッグすると、(からの)選択が期待どおりであることがわかります。