Ich möchte mir für Firefox eine Erweiterung schreiben, dazu müsste ich aber wissen, wie ich mit JavaScript den markierten Text auf einer Seite verarbeiten kann. Das sollte wenn es geht der Seitenquellcode dieser Stelle sein.
Für eigene Erweiterung markierten Text verarbeiten
-
hugo1990 -
18. Januar 2007 um 20:11 -
Erledigt
-
-
-
also ich bin noch kein profi mit javascript, hab das jetzt nur mal schnell überflogen, gibt es da eine function, mit der man den Quelltext des markierten Textes in eine Variable schreiben kann?
-
so einfach ist es nicht, nein.
Aus dem verlinkten Code hab ich jetzt mal schnell das hier rauskopiert:
Code
Alles anzeigenvar focusedWindow = document.commandDispatcher.focusedWindow; if (focusedWindow == window) focusedWindow = content; var selection = focusedWindow.getSelection(); var range = selection.getRangeAt(0); var ancestorContainer = range.commonAncestorContainer; // let the ancestor be an element if (ancestorContainer.nodeType == Node.TEXT_NODE || ancestorContainer.nodeType == Node.CDATA_SECTION_NODE) ancestorContainer = ancestorContainer.parentNode; var MARKIERTER_CODE = ancestorContainer.innerHTML;
-
Danke erstmal, nur das zeigt ja mehr an als makiert ist. Also hab ich mich ein bisschen im Code von den Links umgesehen und folgendes gefunden:
Dort werden der Anfang und das Ende der Markierung gespeichert. Das dumme dabei ist nur, das jedes mal, wenn ein HTML-Tag in der Markierung steht, fängt er danach wieder bei Position 0 an zu zählen. Also kann ich nicht einfach:Codevar Code = ancestorContainer.innerHTML; var selected_code = Code.substring(startOffset,endOffset);
schreiben um nur den Markierten Code zu haben. Wie muss ich das machen, im Code von den Links steht ja, wie das Markiert wird, nur weiß ich nicht wirklich wie ich das so umändern kann, das dieser Teil dann in eine Variable geschrieben wird. -
Weiß jemand vielleicht zufällig, wie der Code da getrennt wird. Ich habe jetzt mal das:
Codevar startPath = getPath(ancestorContainer, startContainer); var endPath = getPath(ancestorContainer, endContainer);
versucht auszuwerten. Da bin ich manchmal darauf gekommen, dass wenn mehrere Html-Tags zusammen stehen, die jeweils zu einer "Gruppe" gehören, aber manchmal ist es so, das z.B. die Tags für einen Link + der Linktext eine "Gruppe" ergeben würden.
Wenn nicht, kann mir wenigstens jemand erklären, wie ich den Text bekomme der in der Function viewPartialSourceForSelection selektiert wurde auslesen kann. -