Hi,
Allerdings muß ich split() auf die Variable anwenden, die den Inhalt von innerHTML "im Original" erhält. Bei Anwendung auf eine weitere, hieraus zusammensetzte Variable verhält sich Firefox sehr merkwürdig.
und merkwürdig heißt ...? ;-)
schwer zu erklären. Ich poste am besten mal den Code:
Es geht um den Inhalt der Seite http://www.1ngo.de/statistik.html#Aktuelles nach der Zeile "Auszüge meiner Statistik für den Monat November 2004", der in <pre id="Verweise"> </pre> gesetzt ist.
Hierauf greife ich bis jetzt onload so zu:
function Verweise() {
var x=document.getElementById('Verweise').innerHTML, y='', p0=0, p1, i, v;
p1 = x.indexOf('* /')+2; // da wird später eine intelligentere Schleife draus
y += x.slice(p0,p1); p0 = p1;
do { p1++; } while (x.charCodeAt(p1) > 32); // das kann ich mir bei einem Array sparen
v = x.slice(p0,p1);
alert(v); alert(v.link(v)); // liefern in Kombination korrekte Ergebnisse
y += v.link(v);
p0 = p1+1; y += x.slice(p0);
if(window.external) { // korrigiert die Fehler im IE
y = y.replace(/\n/g, ' <br>');
y = y.replace(/ /g, ' ');
}
document.getElementById('Verweise').innerHTML = y;
}
Im Firefox funktioniert das jetzt so und die erste der »Top20 Einstiegsseiten« wird verlinkt.
Im IE mußte ich leider gerade feststellen, daß die Verlinkung nicht klappt. :-(
Jetzt das merkwürdige. Ohne den hinzugefügten alert(v) setzt Firefox über v.link(v) den gesamten Rest der Variablen x in den Link, gibt das im alert auch aus und setzt es als Linkziel im anschließend neugeschriebenem innerHTML ein. Daduch bekommt ein später definiertes Array var z = y.split(/\n/) statt 204 nun 331 Elemente, das Element 76 den Inhalt »2853* <a href="/tanz/tanzschritte.html«, das eigentlch letzte Element 203 den Inhalt »...">/tanz/tanzschritte.html</a>« und die eigentlich nicht mehr vorhandenen weiteren Elemente die folgenden Zeilen.
ich weiß nicht, wie nah dein eingangsbeispiel an der realen situation war, aber wenn du zunächst nur den textinhalt brauchst, wäre auslesen über innerText evtl. eine alternative (sofern der gecko das ebenfalls adaptiert hat?), bei der dir die probleme mit den knoten u.U. erst mal erspart bleiben.
ach, ich glaube, mit innerHTML bin ich auf der sicheren Seite...
Ich probiere das jetzt mal mit zeilenweiser Abarbeitung nach split() und muß dann nur noch herausfinden, ob der Firefox auch dann noch ein alert (oder vielleicht timeout) braucht und ob der IE die Links dann über innerHTML zurckschreibt.
freundliche Grüße
Ingo