Bio: Wir basteln uns eine JavaScript-Suche für Webseiten

Sup!

<prolog>
Ich erfreue mich ja eines gewissen Bekanntheitsgrades, man könnte sagen, ich bin möglicherweise der Schrecken der Newbies, die Geissel der armen Hilfesuchenden... neulich hat Stefan irgendwann mal gepostet, man solle doch bitte hin und wieder Kompetenz beweisen... *hust*

Also, mit dem Gedanken, ein wenig Kompetenz zu beweisen, im Hinterkopf, setzte ich mich vor den PC. Von meinem nicht ganz entspiegelten Monitor viel mein Blick auf meinen wunderbaren Körper... spontan hatte ich keine Lust mehr zum Kompetenz-Beweisen... EHM... aber trotz dieser Ablenkung machte ich mich schliessich ans Werk. So bastelte ich mal eben kurz so eine Art JavaScript-Suche für Webseiten. Wollte ja neulich jemand haben. Natürlich sucht diese Suchmaschine nur in der Webseite, wo sie eingebaut ist, wegen der Sicherheit etc. Aber vielleicht kann man auch in Frames auf der gleiche Domain suchen. Nur benutze ich keine Frames ;-)
</prolog>

Man baut das Script in eine Webseite ein, und wenn das Suchwort in der Seite - ausserhalb eines Script- oder Head-Bereichs - auftaucht, dann wird das Eltern-Element umgefärbt. Das ist verdammt doof, wenn das Eltern-Element das Body-Element ist, sonst geht es eigentlich ganz gut.
Man könnte das sicher noch verbessern, und evtl. so Divs um das gefundene Wort basteln - aber da sollen sich dann mal andere beweisen... man verzeihe übrigens den schlecht formatierten Quelltext:

<html><head>
<title>bla</title>
<script type="text/javascript">
/* (C) 2002 by Peter "Bio" Asemann */
/* Copying and modification permitted without permission */
glob = new Array();

function seek(giver)
{
var d = giver;
var a;
/* alert ("v"+d.nodeValue+"t"+d.nodeType+"n"+d.nodeName); */
if (d.nodeValue && d.nodeName == "#text" )
{
 glob.push(d.nodeValue);
}
if (d.hasChildNodes && d.nodeName !="SCRIPT" &&d.nodeName !="HEAD")
{
for (a=0; a<d.childNodes.length;a=a + 1)
 {
  seek(d.childNodes.item(a));
 }
return true;
}
}

function gofind(wort)
{
while (glob.length > 0)
{
var popped=glob.pop();
 if (popped.search(wort) != -1) {alert("Gefunden!"+wort)}
}
}
</script>
</head>
<body>
Super Toller Suchtext<br>
Ich habe mich vertan!
<form name="box">
<input type="text" value="suchwort" name="suchwort">
<input type="button" value="Seek!" onClick="seek(document);gofind(document.box.suchwort.value);" />
</form>
<ol>
Gut, dass wir darueber geredet haben.
<li>Suchen Sie nach Waschmaschinen!</li>
<li>Mooren bohren ungeschoren an den Toren</li>
</ol>
</body>
</html>

Man sollte nach "Waschmaschinen" und nach "Suchtext" suchen - dann siehet man, wie gut bzw. schlecht das funktioniert.

Getestet ist das mit Mozilla 0.9.8. Ob minderwertige Browser wie der IE funzen, interessiert mich nicht.

Gruesse,

Bio

  1. Sup!

    Der richtige ist hier:

    http://bionic.dnsalias.org/jssuche/seek.html

    Probiert doch mal - sonst bin ich ganz traurig ;-)

    Gruesse,

    Bio

    1. hallo again Bio,

      Probiert doch mal - sonst bin ich ganz traurig ;-)

      jo - ist hiermit geschehen - unter meinem MO 0.9.8 tut sich was;

      ! lob neid und anerkennung !

      bye - peterS. - pseliger@gmx.net

  2. gruss Bio,

    sieht sehr kompakt aus -

    morgen werde ich mal den versuch starten,
       mich durch den code zu stricken;

    und darf ich dann Deine grundlagenforschung
       fuer projekte meinerseits zugrunde legen  -
       denn fuer bisherige js-suchen (MSIE-all-DOM)
       parse ich naemlich bis jetzt noch auf alther-
       gebrachte weise  alles,  was "BODY.innerHTML"
       ist-(und dann auch noch ueber "hidden-frames" - schande ueber mich)

    Natürlich sucht diese Suchmaschine nur in der Webseite,
    wo sie eingebaut ist, wegen der Sicherheit etc. Aber
    vielleicht kann man auch in Frames auf der gleiche Domain
    suchen. Nur benutze ich keine Frames ;-)

    gute nacht - peterS. - pseliger@gmx.net

  3. Moin!

    Man könnte das sicher noch verbessern, und evtl. so Divs um das gefundene Wort basteln - aber da sollen sich dann mal andere beweisen... man verzeihe übrigens den schlecht formatierten Quelltext:

    Ich will deine Arbeit ja nicht völlig schlecht machen - für die eine oder andere weitergeführte Idee ist dein Script sicher von Vorteil. möglicherweise auch für mich, wenn es darum geht, mit dem W3C-DOM klarzukommen.

    Aber der Praxiswert dieser Lösung geht doch eher gegen Null. Wenn ich auf der aktuellen Seite was suche, drücke ich Strg-F und gebe mein Suchwort ein. Das wird dann durch meinen Browser hervorgehoben (in diesem Falle Opera), und ich finde das ziemlich praktisch.

    Opera macht übrigens auch mit dem angeblich richtigen Quellcode garnichts.

    Ansonsten erwarte ich von einem Suchbegrifftexteingabefeld eher, daß es die komplette Site absucht, nicht nur die Seite. :)

    Just my 0,02€. ;)

    - Sven Rautenberg

    1. Sup!

      Aber der Praxiswert dieser Lösung geht doch eher gegen Null. Wenn ich auf der aktuellen Seite was suche, drücke ich Strg-F und gebe mein Suchwort ein. Das wird dann durch meinen Browser hervorgehoben (in diesem Falle Opera), und ich finde das ziemlich praktisch.

      Opera macht übrigens auch mit dem angeblich richtigen Quellcode garnichts.

      Dann ist Opera eben nicht kompatibel ;-)

      Ansonsten erwarte ich von einem Suchbegrifftexteingabefeld eher, daß es die komplette Site absucht, nicht nur die Seite. :)

      Dafuer gibt es ja Server-sided dingenskirchen, und was das suchen angeht, vielleicht kriege ich es ja mit frames dazu, die ganze site zu durchsuchen...
      Im uebrigen wollte ich nur die Leute begluecken, die unbedingt eine Suche in JS wollten.

      Gruesse,

      Bio