Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion search/split geht nicht...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion search/split geht nicht...

    Hallo,

    Script:
    PHP-Code:
    window.setTimeout(function (){
    for (var 
    0<= 10i++) {
        var 
    url document.getElementsByTagName("a")[i];
        if(
    url.search(/domain/i))
        {
            
    alert(url);
        }
    }
    },
    5000); 
    (Greasemonkey Script, deswegen window.setTimeout und dann dadrinnen die Funktion, spielt aber keine Rolle!)

    Fehler:
    url.search is not a function

    Wenn ich das selbe mit "for each" mache und dann split anwende, funktioniert es auch nicht.

    Also die eigendliche Frage ist, wie verwende ich eine Funktion in einer Funktion?
    Oder liegt es doch am Script? O.o


  • #2
    Eigentlich kann man Problemlos eine Funktion in einer Funktion aufrufen.
    Existiert url.search überhaupt?

    Kommentar


    • #3
      PHP-Code:
      var url document.getElementsByTagName("a")[i]; 
      das ist doch url
      und dann halt .search();

      oder was meinst du?

      Kommentar


      • #4
        Sowas gibt es meines Wissens nach nicht.
        Was erhofst du dir den von der Funktion?

        Kommentar


        • #5
          Ich wollte eigendlich im ganzen nur;
          Das er checkt, ob die Domain die richtige ist.
          Also er sollte die url durchsuchen und gucken ob der Domain name dort vorhanden ist.
          Also search.
          Dann als es nicht ging, wollte ich es halt so machen, dass er es bei den . splittet.
          Nur das geht auch nicht (selber fehler nur mit split).

          Wie sollte ich es sonst machen? ^^

          Kommentar


          • #6
            Da ich kein Javascript Profi bin:
            Very Quick and very dirty:
            HTML-Code:
            <script>
            function do1(){
                for (var i = 0; i <= 2; i++) {
                    var url = document.getElementsByTagName("a")[i];
                    var url1 = url.toString();
                    console.log(url1);
                    if(url1.search(/domain/i))
                    {
                        alert(url1);
                    }
                }
            }
            </script>
            <body>
            
                <a href="1">link1</a>
                <a href="2">link2</a>
                <a href="3">link2</a>
                <script>
                    do1();
                    </script>
            </body>
            funkt bei mir

            Kommentar


            • #7
              Danke es geht
              Ich glaub das lag an dem:
              PHP-Code:
              var url1 url.toString(); 
              oder an dem doppeltem url ^^

              Kommentar


              • #8
                Das wollte ich eigentlich mit meinem 1. Beitrag sagen.
                .search funktioniert nur bei Strings

                Kommentar


                • #9
                  window.setTimeout erwartet einen string (so wie eval auch). Wenn du da eine lambda Funktion ausführen möchtest, hier ein Kurzbeispiel:

                  PHP-Code:
                  window.setTimeout("(function) () { tueirgendwasglobales(); })();"200); 
                  Wenn du die Funktion in Klammern setzt, wird sie erst beim Auslesen registriert, die () sorgen für das direkte ausführen. Falls das unklar sein sollte, schau dir mal das Module Pattern an, funktioniert nach dem gleichen Schema.

                  Dabei geht aber dein ursprünglicher Scope verloren, also mit Vorsicht genießen
                  I like cooking my family and my pets.
                  Use commas. Don't be a psycho.
                  Blog - CoverflowJS

                  Kommentar

                  Lädt...
                  X