myGully.com

myGully.com (https://mygully.com/index.php)
-   Entwicklung & Programmierung (https://mygully.com/forumdisplay.php?f=72)
-   -   [Javascript] Alle zeilen aus <pre> extrahieren (https://mygully.com/showthread.php?t=2288948)

MeMyselfAndI 23.04.11 16:37

[Javascript] Alle zeilen aus <pre> extrahieren
 
Ich will gerade den JDownloader ins IE-Contextmenü integrieren und stoße auf unerwartete Schwierigkeiten.

Ich extrahiere mit Hilfe von
Code:

external.menuArguments.document.selection.createRange().text
den ausgewählten Text und verfüttere den in der Weiterverarbeitung an den JDownloader. Nun sind recht viele Linklisten gerade hier auf MyGully in einem <pre> untergebracht und im <pre> extrahiert der oben erwähnte Code nur die erste Zeile. Wie müsste man es machen, um wirklich die ganze Auswahl zu bekommen?

swtcw12 24.04.11 10:26

Hallo
Das scheint ein Problem des IE zu sein. Im FF unter Ubuntu geht es sehr gut. Man müsste die Links nur noch auseinander bauen z.B. mit Regulären Ausdrücken.
Für den IE fällt mir leider nichts ein. Vielleicht könnte man aus dem gesamten Quelltext mit regulären Ausdrücken das entsprechende <pre> herausfiltern, wenn man den markierten Text nimmt.
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
javas*****:alert(window.getSelection());

swtcw12 24.04.11 10:27

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

MeMyselfAndI 24.04.11 11:21

Mit window.getSelection() steigt der aus mit "Das Objekt unterstützt die Eigenschaft oder Methode getSelection() nicht", das Beispiel von SelfHTML ist das, was ich bereits mache und nicht funktioniert. Aber dennoch danke dafür, dass du dir die Zeit genommen hast.

Der IE ist übrigens 9, falls es was hilft.

swtcw12 24.04.11 13:25

Wenn ich das richtig versteh geht das im IE auch nur mit document.selection.createRange().text.

Ansonsten würde ich das so probieren:
1. selektierten Text bzw. die eine Zeile auslesen (scheint ja zu funktionieren)
2. mit
Zitat:

var pres = document.getElementsByTagName('pre');
for(var i = 0; i < pres.length; i++) {

}
3. in der Schleife mit Regulären Ausdrücken prüfen ob der Text gefunden wurde
Zitat:

var pre_inhalt = pres[i].innerText;
var suche = '/' + dermarkierteText + '/';
if(suche.test(pre_inhalt) == true) {
var der_pre_inhalt_mit_allen_links = pre;
}
else{
alert('Wohl doch das falsche pre!');
}

swtcw12 24.04.11 13:29

Zitat:

var dermarkiertetext;
function selektierterText () {
if (window.getSelection) {
dermarkiertetext = window.getSelection();
} else if (document.getSelection) {
dermarkiertetext = document.getSelection();
} else if (document.selection) {
dermarkiertetext = document.selection.createRange().text;
}
}
zu 1. so den markierten Text auslesen
zu 2. dann alle pre Elemente auslesen


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.