Hallo,
Habe ein kleines Javascript erstellt, um eine Seite auf meiner Homepage zu durchsuchen. Geht aber vorserst nur mit MSIE4, da ich das objekt 'all' benutze.
In der dhtml.js (aus SELFHTML) gibt es die Funktionen GetContent(), GetAttribute() usw...
Ich brauche aber ein Ersatz für:
document.all.tags("p").length
das ich in einer Schleife benutze, um anschliessend mit RegExp die verschiedene Inhalte zwischen <p> und </p> zu durchsuchen.
Zusätzlich brauche ich auch eine Art GetContent, die mir den OuterHTML liefert.
Hat jemand die dhtml.js in dieser Hinsicht schon erweitert? Wenn nein, mache ich mich ans Werk (kann dauern .... da ich Neuling in JavaScript bin).
Hier die Suchfunktion:
function searcher(suchwortges)
{
if (NS4) {
alert("Vorerst nur fuer MS IExplorer. An einer Loesung fuer andere Browser wird gearbeitet ...");
return;
}
if (suchwortges.length <2) {
alert("Geben Sie mindestens 2 Zeichen ein!");
return;
}
var inhalttxt = new Array(); //der Text-Inhalt zum durchsuchen
var inhalthtml = new Array(); //den gesamten Text, für wiedergabe
//var suchwortges = "tipp com netz wlan"; //vorerst fest, zum testen
var suchwortanz = 0; // Anzahl der Suchwörter
var suchwort;
var anzp;
var ergzw = 0; //zwischenergebnis für jedes Wort
var treffer = 0;
var meldung = "";
//Suchwörter trennen und anzahl festhalten
meldung = "Suchen nach ... ";
suchwort = suchwortges.split(" "); //in einzelne Wörter trennen
for (var i = 0; i < suchwort.length; i++) {
suchwortanz++;
meldung = meldung + "Wort " + suchwortanz + ": [" + suchwort[i] + "], ";
}
/* Alle P-Tags suchen, und in 2 Arrays speichert (mit und ohne TAG) */
anzp = document.all.tags("p").length-3;
for (var k = 0; k <= anzp; k++) {
if (document.all.tags("p")[k].name != null) {
inhalttxt[k]=document.all.tags("p")[k].innerText;
inhalthtml[k]=document.all.tags("p")[k].outerHTML;
} else {
inhalttxt[k]="";
inhalthtml[k]="";
}
}
document.write("<HTML><HEAD><link rel=stylesheet type="text/css" href="xformate.css"></HEAD><BODY>");
document.write("<a href="javascript:history.back()">zurück zur Liste</a><br><p><s>");
document.write(meldung + " mit UND-Verknuepfung:</s></p>");
//Suchloesung
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.write(inhalthtml[i]);
treffer++;
} else {
document.write("... ");
}
}
document.write("<p>ENDE DER FUNDE... ");
document.write("<br>Anzahl der Treffer: " + treffer);
document.write("<br><a href="javascript:history.back()">zurück zur Liste</a></p>");
document.write("</BODY></HTML>");
}