Text markieren und Position ermitteln
wasi
- javascript
Hallo zusammen,
Ich bastle gerade an einer "Markierungs-Funktion": Benutzer markiert Text in einem Div und klickt auf markieren; der markierte Text wird im Hintergrund verarbeitet und zurück gesendet.
Das klappt grundsätzlich auch alles - bis auf zwei Probleme, für die ich keine Lösung finde.
1. Das Erweitern einer Markierung durch "Hineinmarkieren" funktioniert nicht, lediglich das komplette "Übermarkieren".
2. Ich habe keine Idee, wie ich beim IE die Position des markierten Textes ermitteln kann. Momentan wird der ausgewählte Begriff im gesamten Dokument ersetzt. Sonst ist das mit dem Ersetzen wegen der Tags (<span>) kein Problem.
Mein Code:
function getSelHTML() {
if (document.selection && document.selection.createRange) {
var html=document.selection.createRange().htmlText;
markieren(html);
} else if (window.getSelection) {
var sel = window.getSelection();
var html = "";
for (var i=0;i<sel.rangeCount;i++) {
var d = document.createElement("span");
var r = sel.getRangeAt(i);
var parent_element = r.commonAncestorContainer;
var prev_html = parent_element.innerHTML;
r.surroundContents(d);
html += d.innerHTML;
parent_element.innerHTML = prev_html;
}
markieren(html);
}
}
function markieren (mark_html) {
... sendet den markierten Text an eine URL wo er verarbeitet wird
}
Besten Dank für Eure Tipps und viele Grüße
Wasi