Wolfgang: Selektierung richtig entfernen?

Hi,

ich habe folgendes Problem: Ich will einen Textknoten nachdem in ihm etwas markiert wurde durch einen anderen ersetzen. Funktionert alles wunderbar nur dass er die Selektierung nur unsichtbar macht aber nicht richtig entfernt.

Der Bsp. Code ist deswegen so lang, weil den Effekt erkennt man am besten beim Scrollen. Und zwar: In der ersten Zeile markiert man was mit der Maus und sobald man sie los lässt wird der Textknoten ersetzt. Fährt man nun mit der Maus unten am Dokument hinaus beginnt das Dokument zu scrollen.

Wenn man die Zeile " selection.removeAllRanges(); " herausnimmt, dann  sieht man des besser weil die Markierung nicht entfernt wird jedoch die Effekte sind die gleichen. Wie kann ich die Selektierung nun ganz entfernen, weil der Mauszeiger verhält sich immer noch so als ob etwas selektiert wäre und das will ich nicht.

lg Wolfgang

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<script type="text/javascript">

function insertElement()
{
 var selection     = window.getSelection();
        var anchorNode    = selection.anchorNode;
 var parentNode    = anchorNode.parentNode;

var documentFragmentToInsert  = document.createDocumentFragment();
 var text = document.createTextNode("Das ist der neue Text");

documentFragmentToInsert.appendChild(text);
 selection.removeAllRanges();
        parentNode.replaceChild(documentFragmentToInsert, anchorNode);
}
</script>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
 <div onmouseup="insertElement()">
  Der Probetext steht hier in diesem div
 </div>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>

<p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
 <p>
  Neue zeile
 </p>
</BODY>
</HTML>

  1. hallo,

    ohne dass ich was davon verstehe, frage ich mal einfach:
    für welchen Browser schreibst/bzw testest du?

    var selection     = window.getSelection();
    var documentFragmentToInsert  = document.createDocumentFragment();
    selection.removeAllRanges();

    vermute mal, das kennt nicht jeder ...

    http://de.selfhtml.org/javascript/objekte/document.htm#get_selection

    fg planB

    1. Code soll in einer Firefox Extension funktionieren.