Markierung ausfragen
Jeder wird dieses Problem schon einmal gehabt haben oder es noch bekommen: Wie bekomme ich heraus, was der Benutzer gerade markiert hat? Der MS Internet Explorer (ab 4.0) und der Netscape Navigator (ab 4.0) bieten zu dieser Frage interessante Möglichkeiten.Internet Explorer
Microsoft hat für dieses Problem ein eigenes Objekt geschaffen:document.selection
. Dieses enthält alle Eigenschaften der aktuellen Markierung. Um den gerade ausgewählten Text heraus zu bekommen erstellt man ein TextRange
-Objekt [Zeile 1] und fragt von diesem die text
-Eigenschaft ab [Zeile 2]. Alternativ ist es auch möglich direkt den verwendeten HTML-Code über die htmlText
-Eigenschaft [Zeile 3] heraus zu bekommen. Beispiel:
a = document.selection.createRange();
b = a.text;
c = a.htmlText;
Netscape Navigator
Der Netscape Navigator bietet zur Lösung des Problems eine eigene Methode desdocument
-Objekts, die getSelection
-Methode, an. Sie ermittelt den aktuell markierten Text. Beispiel:
a = document.getSelection();
Ersetzen
Das Ersetzen des markierten Textes durch einen neuen Text ist meist der nächste Schritt der angestrebt wird. Mit dem Internet Explorer ist das ziemlich einfach: Derselection
wird einfach ein neuer Wert zugewiesen. Beispiel:
document.selection.createRange().text = 'neuer Text';
Für die Umsetzung im Netscape Navigator existieren jedoch nur Gedankenexperimente. Die Überlegungen gehen dahin, unsichtbare Laufzeichen, z.B. in form von Sonderzeichen, einzufügen. Beim Ersetzen werden diese Zeichen ausgelesen, somit die Stelle ermittelt, und der Text neu zusammen gesetzt. Allerdings sind aus diesen Ideen bisher noch keine vorzeigbaren Ergebnisse entstanden (falls doch, schreiben Sie bitte dem Autor / siehe unten).Hinweise
Da die Browser jeweils nicht diese Methoden des anderen Browsers unterstützen, sollte an eine Browser-Erkennung gedacht werden. außerdem ist zu bedenken, dass z.B. bei Klick auf einen Link, dieser die Markierung erhalten kann (die Maus brauch nur ein Stückchen verrutschen ...), deshalb empfiehlt sich die Abfrage der Markierung z.B. nur beionMouseOver
- oder derartigen Events.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project