wadi: in textarea string suchen, markieren und anzeigen

[browser: maxthon (auf ie beruhend)]

hallo forum

mir schwebt ein script 'stringsuche.php' vor, das folgendes leistet: zuerst wird eine (lokale) textdatei per textarea geöffnet:

<?php echo '<textarea rows=50 cols=100>'.htmlentities(file_get_contents('D:text.txt')).'</textarea>'; ?>

(habe ich hier gelernt, funzt.) in diesem text soll per javascript ein bestimmtes wort, sagen wir 'sonne', gesucht, markiert und mit der markierung angezeigt werden. WICHTIG: 'sonne' wird nicht erst per 'form' eingegeben, sondern ist schon im script enthalten. – ich habe dafür etwas gesucht. das folgende schien mir passend zu sein. ich habe 'sonne' eingesetzt, funzt aber nicht (fehlermeldung: "document.body ist null oder kein objekt"):

<script type="text/javascript">
r = document.body.createTextRange();
r.moveToElementText(document.all.sonne);
function suche(s)
{
 r = document.body.createTextRange();
 r.findText(s);
 r.select();
 r.scrollIntoView(true);
}
</script>

leider bin ich ich in jvsc so wenig fit, dass ich nicht einschätzen kann, ob das so überhaupt gehen kann (zb. der bezug auf die textarea). – für Euern rat im voraus schon mal vielen dank. – gruß wadi

  1. hi,

    mir schwebt ein script 'stringsuche.php' vor, das folgendes leistet:

    Ich dachte, du hättest es bereits gelöst ...?

    fehlermeldung: "document.body ist null oder kein objekt"

    Du versuchst, auf Elemente des Dokumentes zuzugreifen, noch bevor diese existieren.

    Rufe dein Script erst nach dem Laden und initialen Rendern des Dokumentes auf, per onLoad.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi wahsaga (zunächst mal: kleine abbitte für vergangenes...)

      Ich dachte, du hättest es bereits gelöst ...?

      ja, so (vbs-sendkeys) geht es auch, aber wie dort schon bemerkt: primitiv und lahm (auch instabil). außerdem möchte ich langsam etwas jvsc-kompetenz anreichern.

      fehlermeldung: "document.body ist null oder kein objekt"

      Du versuchst, auf Elemente des Dokumentes zuzugreifen, noch bevor diese existieren.

      leuchtet sofort ein.

      Rufe dein Script erst nach dem Laden und initialen Rendern des Dokumentes auf, per onLoad.

      das beherrsche ich eben nicht. habe jetzt am ende eingefügt:

      <body onload="suche()">
      [dann die textarea]

      ergebnis: php-fehlermeldung, diese aber markiert :-). - 'initiales rendern' klingt gut, weiß aber nicht, was das heißt, lerne aber gern dazu (so.). könntest Du zu diesem zweck vielleicht ein paar scriptzeilen spendieren? - danke im voraus - gruß wadi

      1. hi,

        Rufe dein Script erst nach dem Laden und initialen Rendern des Dokumentes auf, per onLoad.

        das beherrsche ich eben nicht. habe jetzt am ende eingefügt:

        <body onload="suche()">
        [dann die textarea]

        ergebnis: php-fehlermeldung

        Also liegt dein aktuelles Problem darin, obigen Code mittels PHP korrekt auszugeben?
        Dann fehlt wohl Grundlagenwissen über den Umgang mit Strings in PHP.
        (Abgesehen davon, dass nicht klar ist, warum du diese Zeile überhaupt per PHP erzeugen willst.)

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Also liegt dein aktuelles Problem darin, obigen Code mittels PHP korrekt auszugeben?
          Dann fehlt wohl Grundlagenwissen über den Umgang mit Strings in PHP.

          das fehlt mir allerdings auch.

          (Abgesehen davon, dass nicht klar ist, warum du diese Zeile überhaupt per PHP erzeugen willst.)

          also, ursprünglich wollte ich ALLES in javascript machen, um da weiterzukommen. die php-textarea habe ich nur eingefügt, weil mir in jvsc nichts entsprechendes zur verfügung steht. wenn Du mir da weiterhelfen könntest? - (eine reine php-lösung hätte natürlich auch was für sich.) - gruß wadi

          1. hi,

            wenn Du mir da weiterhelfen könntest?

            Und wobei jetzt?

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. wenn Du mir da weiterhelfen könntest?

              Und wobei jetzt?

              'onload' war ein guter tip, funzt jetzt, prima! vielen dank. aber vielleicht darf ich Deine hilfe trotzdem noch einmal in anspruch nehmen:

              ich möchte doch noch eine form-eingabe am ende des scripts einfügen, und zwar zum WEITERSUCHEN: im suchfeld soll schon der vorher gesuchte string (hier im beispiel 'sonne') stehen. anklicken führt also zum nächsten vorkommnis von 'sonne'. - hier ein erster, aber noch erfolgloser versuch. was ist hier falsch?

              <form name="search" onSubmit="return findInPage(this.string.value="sonne");">
              <input name="string" type="text" size="38" onChange="n = 0;" >
              <input type="submit" name="submitButton" value="suchen">
              </form>

              gruß wadi