私は JavaScript が初めてで、単純な蛍光ペン ツールを作成しようとしています。各関数は単独では正常に機能しますが、組み合わせると出現数が正しく機能しなくなります。ここに私のコードhttp://jsfiddle.net/mrBXu/があります。問題は、最初に「The」を選択すると問題なく動作しますが、再選択すると正しくなくなります。助けてくれてありがとう!
質問する
72 次
1 に答える
0
残念ながら、あなたがやろうとしていることはそれほど簡単ではありません。2回目の試行でうまくいかないのは、ハイライトを行うためにスパンを挿入したためです. 初めてテキストを選択すると、startContainer は「p」タグ内の textNode になります。2 回目に選択すると、startContainer は、挿入したスパンの最後から始まる textNode になります。あなたがする必要があることは、より多くのコードを必要とします。startContainer をチェックするだけでなく、"p" タグとの関係を見つけ、"p" タグ内の startContainer の前にあるすべてのノードをチェックする必要があります。
これが実際の例です: http://jsfiddle.net/mrBXu/4/
于 2012-08-08T02:29:05.437 に答える