RegExp: Beispiel geht mit IE aber nicht mit Firefox
Claude
- javascript
Hallo,
Habe eine kleine Suchfunktion erstellt, die ich auf meiner Homepage schon länger im Einsatz habe. Leider geht diese NUR mit MS IE, aber nicht mit Firefox. Bei Firefox werden keine Einträge gefunden (also Treffer immer 0).
Wahrscheinlich habe ich Fehler bei RegExp.
Hier der Auszug der Funktion:
for (i = 0; i <= anzp; i++) { //jeden Block bzw Array durchsuchen
ergzw=0; //zurücksetzen für jeden Block
for (var j = 0; j < suchwortanz; j++) { //für jedes Wort suchen
suche = new RegExp (suchwort[j],"gi");
var ergebnis = suche.exec(inhalttxt[i]);
if(ergebnis != null)
ergzw++;
}
if(ergzw == suchwortanz) { //wenn ergzw = anzahl der Suchwoerter (bei UND) ... alle wörter gefunden
document.writeln(inhalthtml[i]);
treffer++;
} else {
document.write(".");
}
}
Erläuterung Variablen:
Da ich weiss, dass Firefox das InnerText nicht unterstützt, habe ich das gleiche mit
var ergebnis = suche.exec(inhalthtml[i]);
(also OuterHtml) versucht. Geht aber auch nicht.
Sieht irgendjemand etwas, dass mit Firefox Probleme macht? ... bin noch Anfänger. Auch der Aufbau der Schleife ist vielleicht für die Profis unter euch etwas laienhaft .... wie gesagt, bin noch Anfänger, und programmiere sonst mit VBA.
Vielen Dank an euch.
Gruss
Claude
Hallo,
http://de.selfhtml.org/javascript/objekte/all.htm#outer_html
http://de.selfhtml.org/javascript/objekte/all.htm#inner_text
Firefox kennt weder outerHTML noch innerText.
Anstatt innerText kannst du textContent verwenden, die Alternative zu outerHTML hängt von der konkreten Anwendung ab.
Mathias
Hallo Matthias,
Vielen Dank,
...dann ist mir klar, warum es nicht geht.
Werde es mit textContent probieren
mfG
Claude
Hallo Matthias,
...die Alternative zu outerHTML hängt von der konkreten Anwendung ab.
Mathias
OK, Für InnerText habe ich TextContent (nur wenn die Variable leer ist)
Klappt ganz gut.
Nun habe ich das Problem mit OuterHTML. Kannst du mir ein Tipp geben? Muss ich selber eine Funktion zusammenbasteln, um die ganze Struktur auszulesen?
Was ich brauche: Wenn die Wörter in InnerText gefunden werden, wird OuterHTML dann im Suchergebnis ausgespuckt. Funktioniert eigentlich wie ein Filter.
Hier ein Beispiel von solch einem Block:
<p id="dataCALC000059"><a name="CALC000059"></a>
<img src="xpunkt03.gif" width="14" height="14" border="0" alt="T I P P - Einträge">
<s>Anwendung</s>
<b>CALC.EXE </b>
Taschenrechner: "." vor "-" Regel nur in der wissensch. Ansicht !
<i><br>System: Win95 </i>
<br><u>Quelle: PCWelt 97/06 Seite 278, letzte Aenderung am 18.01.2000</u>
<br><u>[Original-Text = deutsch] [englische Übersetzung vorhanden <a href="http://www.cpctipps.de/en/_0a3.htm#CALC000059">EN</a>] [französische Übersetzung vorhanden <a href="http://www.cpctipps.de/fr/_0a3.htm#CALC000059">FR</a>] </u>
<u><br>Systemnummer für Rückfragen: CALC000059</u>
|<a onclick="tipppermail('CALC000059')">Tipp per eMail weiterleiten</a>
</p>
Danke für Hinweise und Tipps
mfg
Claude
Hallo,
Habe für meinen Fall eine Lösung gefunden: Mit InnerHTML:
inhalthtml[k]=document.getElementsByTagName("p")[k].outerHTML;
if (inhalthtml[k] == null)
inhalthtml[k]="<P>" + document.getElementsByTagName("p")[k].innerHTML + "</P>";
Ist vielleicht nicht sehr elegant, aber es klappt. Funktioniert mit MS IE und Firefox
mfG
Claude