Verbatim: Syntaxfehler

Hallo

Kann mir einer von euch sagen wo der fehler in der folgenden Fukntion ist?

function activate(picSrc, picNr){  
  
  document.getElementById("LightboxPic").src = getSource(picSrc, picNr);  
  
}  
  
function getSource(picSrc, picNr){  
  
  var src = "";  
  foto = new Image(auto,auto);  
  
  
  switch(picSrc){  
  
    case "t":  
      foto.src='Bilder/traditionell/'+picNr+".jpg";  
      break;  
  
    case "a":  
      foto.src='Bilder/airbrush/'+picNr+".jpg";  
      break;  
  
    case "f":  
      foto.src='Bilder/fotodedsign/'+picNr+".jpg";  
      break;  
  
    default:  
      break;  
  }  
  
  foto.src = src;  
  return foto.src;  
  
}

Meine Fehlerkonsole sagt immer Syntaxfehler in "activate()".

Danke für eure Hilfe
Verbatim

  1. Hallo,

    function activate(picSrc, picNr){

    document.getElementById("LightboxPic").src = getSource(picSrc, picNr);

    }

      
    Sieht auf den ersten Blick ganz okay aus.  
      
    
    > Meine Fehlerkonsole sagt immer Syntaxfehler in "activate()".  
      
    Kein Browser erzeugt solche unspezifischen Fehlermeldungen. Was steht wirklich in der Fehlerkonsole z.B. eines Firefox? Wie und wo wird activate aufgerufen, stimmen die Parameter?  
      
    Mathias
    
    -- 
    [SELFHTML aktuell Weblog](http://aktuell.de.selfhtml.org/weblog/)
    
    1. Kein Browser erzeugt solche unspezifischen Fehlermeldungen. Was steht wirklich in der Fehlerkonsole z.B. eines Firefox? Wie und wo wird activate aufgerufen, stimmen die Parameter?

      Ja das hab ich auch gerade geuckt.
      <img onclick=\"activate(t, 001)\" height=\"40\" width=\"100\" alt=\"Bild\" src=\"Bilder/traditionell/003.jpg\"/>

      kann es sein, dass ich die Werte falsch übergebe?

      Meine Fehlerkonsole (vom Firefox) sagt wirklich nur:
      syntax error
      function activate(
      -----------------^

      kann ich nichts mit anfangen.....

      Verbatim

      1. <img onclick=\"activate(t, 001)\" height=\"40\" width=\"100\" alt=\"Bild\" src=\"Bilder/traditionell/003.jpg\"/>

        die backslashes vor den Anführungszeichen sind nur wegen php da.

        Verbatim

      2. Hi Verbatim!

        kann es sein, dass ich die Werte falsch übergebe?

        Kann schon sein, aber ich vermute, der Fehler kommt nicht daher.

        Meine Fehlerkonsole (vom Firefox) sagt wirklich nur:
        syntax error
        function activate(
        -----------------^

        Was steht davor?

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Was steht davor?

          Da steht komplett:

          syntax error
          http://..... (url eben)                                  Zeile1
          activate(
          --------^

          Verbatim

          1. Hi verbatim!

            Was steht davor?
            Da steht komplett:
            syntax error
            http://..... (url eben)                                  Zeile1
            activate(
            --------^

            Fast schon niedlich. =)

            Ich wollte eigentlich wissen, was vor der Deklaration der Funktion activate steht. ;-)
            Ich glaube ein Beispiel wäre wirklich wesentlich sinnvoller. So kommen wir (also vor allem die anderen) sicher nicht weiter.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Ich wollte eigentlich wissen, was vor der Deklaration der Funktion activate steht. ;-)

              Ja nichts?!

              Ich glaube ein Beispiel wäre wirklich wesentlich sinnvoller. So kommen wir (also vor allem die anderen) sicher nicht weiter.

              was denn für ein Beispiel? Ich habe doch bereits den kompletten script vorgelegt?! Der HTML-Teil ist ja irrelevant bis auf die Stelle, wo die Funktion aufgerufen wird oder?

              MfG Verbatim

              1. Hi Verbatim!

                Ich wollte eigentlich wissen, was vor der Deklaration der Funktion activate steht. ;-)
                Ja nichts?!

                Doch irgendwelcher HTML-Code mindestens.

                Ich glaube ein Beispiel wäre wirklich wesentlich sinnvoller. So kommen wir (also vor allem die anderen) sicher nicht weiter.
                was denn für ein Beispiel? Ich habe doch bereits den kompletten script vorgelegt?! Der HTML-Teil ist ja irrelevant bis auf die Stelle, wo die Funktion aufgerufen wird oder?

                Weiß ich nicht. Vielleicht. Vielleicht auch nicht.

                Wenn es dir nicht möglich ist, eine Beispielseite online zu stellen, kannst du ja auch den kompletten Quellcode der Seite hier posten. Also den, der im Browser ankommt, nicht den PHP-Code.

                MfG H☼psel

                --
                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
      3. Hallo,

        Mit den Codeschnipseln kommen wir offenbar nicht weiter. Zeige uns bitte mal ein reduziertes Beispiel, bei dem der Fehler auftritt.
        Interessant ist nicht, was im PHP-Code steht, sondern was im HTML-Code herauskommt. Oft hilft es schon, wenn du in diesen hineinschaust.

        Mathias

        1. Hallo,

          Mit den Codeschnipseln kommen wir offenbar nicht weiter. Zeige uns bitte mal ein reduziertes Beispiel, bei dem der Fehler auftritt.
          Interessant ist nicht, was im PHP-Code steht, sondern was im HTML-Code herauskommt. Oft hilft es schon, wenn du in diesen hineinschaust.

          reduziert steht da ungefähr so etwas im html teil:

          <img onclick="activate(t, 001)" height="40" width="100" alt="Bild" src="Bilder/traditionell/003.jpg"/>;

          und den scriptcode hab ich bereits an Anfang vollständig hier reingeschrieben.

          Verbatim

          1. Mahlzeit Verbatim,

            <img onclick="activate(t, 001)" height="40" width="100" alt="Bild" src="Bilder/traditionell/003.jpg"/>;

            Was steht in der Variablen t?

            Dass 001 eine oktal dargestellte Zahl ist, ist Dir bewusst?

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Was steht in der Variablen t?

              Dass 001 eine oktal dargestellte Zahl ist, ist Dir bewusst?

              Das Problem ist, dass ich das zuerst in Anführungszeichen hatte und es nicht funktioniert hat also hab ich mal was unkonventionelles versucht (auch wenn es sinnlos ist/war)

              wenn ich die Werte in Anführungszeichen übergebe sind sie soch Strings oder nicht?

              Verbatim

              1. Mahlzeit Verbatim,

                Das Problem ist, dass ich das zuerst in Anführungszeichen hatte und es nicht funktioniert hat

                Was bedeutet "es hat nicht funktioniert"?

                wenn ich die Werte in Anführungszeichen übergebe sind sie soch Strings oder nicht?

                Richtig. Und da Du den übergebenen Wert letztendlich in Deiner Funktion getSource() eh im Zusammenhang einer Stringverkettung benutzt, sollte das auch funktionieren.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Was bedeutet "es hat nicht funktioniert"?

                  "es hat nicht funktioniert" bedeutet, dass nichts sehbares passiert und die Fehlerkonsole "syntax error" sagt....

                  MfG Verbatim

          2. Hi,

            <img onclick="activate(t, 001)" height="40" width="100" alt="Bild" src="Bilder/traditionell/003.jpg"/>;

            Doch nicht eher so?

            <img onclick="activate('t', '003');" height="40" width="100" alt="Bild" src="Bilder/traditionell/003.jpg"/>

            Du möchtest doch die Zeichenkette 't' übergeben und nicht eine undefinierte Variable t. Und außerdem möchtest du auch als zweites Argument kein numerischen Wert übergeben weil es dann Probleme mit den führenden Nullen gibt (Die doppelten führenden Nullen dürften der Syntaxfehler sein).

            Gruß,
            Felix

            --
            21 is just the half truth.
            1. Du möchtest doch die Zeichenkette 't' übergeben und nicht eine undefinierte Variable t. Und außerdem möchtest du auch als zweites Argument kein numerischen Wert übergeben weil es dann Probleme mit den führenden Nullen gibt (Die doppelten führenden Nullen dürften der Syntaxfehler sein).

              Danke jetzt funktioniert alles einwandfrei!!
              Supa

              P.S. : Warum ist das ein Unterscheid, ob ich "t" oder 't' übergebe??

              MfG Verbatim

              1. Hallo,

                P.S. : Warum ist das ein Unterscheid, ob ich "t" oder 't' übergebe??

                das ist in Javascript kein Unterschied.

                Es ist allerdings ein sehr großer Unterschied, ob du bei verschachtelten Strings zweimal dieselben oder zweimal verschiedene Stringbegrenzer verwendest. Im Beispiel 1

                <a href="..." onclick="activate('t', '001')" ... >

                geht alles klarm, weil der Attributwert von onclick eindeutig ist. Im Beispiel 2 dagegen

                <a href="..." onclick='activate('t', '001')' ... >

                ist der Wert des onclick-Attributs nur 'activate(', weil danach der String wieder beendet wird. Der Rest wird vom HTML-Parser als Müll ignoriert.

                So long,
                 Martin

                --
                In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
                  (Dieter Nuhr, deutscher Kabarettist)
                1. Danke euch beiden.....

                  Verbatim

              2. Mahlzeit Verbatim,

                P.S. : Warum ist das ein Unterscheid, ob ich "t" oder 't' übergebe??

                DAS ist kein Unterschied - es ist aber ein Unterschied, ob Du einen String "t" oder 't' übergibst oder eine Variable mit dem Namen t ...

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Hi Verbatim!

    Meine Fehlerkonsole sagt immer Syntaxfehler in "activate()".

    Also ich kann keinen entdecken.
    Vielleicht liegt der Fehler aber auch im Aufruf von activate oder vor der Funktionsdeklaration.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  3. Hi,

    foto = new Image(auto,auto);

    Hmm, hab ich noch nie so gesehen und bezweifle dass das korrekt ist. Es handelt sich um optionale Parameter die du nicht angeben musst.

      
    foto = new Image();  
    
    

    Mal schauen was die Funktion getSource() so macht.

    function getSource(picSrc, picNr){

    var src = "";

    Deklariere eine lokale Variable die eine leere Zeichenkette beinhaltet.

    foto = new Image(auto,auto);

    Deklariere ein globales Imageobjekt.

    switch(picSrc){

    case "t":
          foto.src='Bilder/traditionell/'+picNr+".jpg";
          break;

    case "a":
          foto.src='Bilder/airbrush/'+picNr+".jpg";
          break;

    case "f":
          foto.src='Bilder/fotodedsign/'+picNr+".jpg";
          break;

    default:
          break;
      }

    Setze die Eigenschaft 'src' des globalen Imageobjektes.

    foto.src = src;

    Überschreibe das wieder mit einem Leerstring.

    return foto.src;

    Gib den Leerstring zurück.

    }

    Das hättest du auch einfacher haben können.

      
    function getSource(picSrc, picNr){  
      return "";  
    }  
    
    

    Man könnte das aber auch lassen :)

    Wozu brauchst du ein Imageobjekt in der Funktion getSource()? Du baust doch nur einen String zusammen. So könnte deine getSource() zum Beispiel aussehen.

    function getSource(picSrc, picNr){  
      
      var src = "Bilder/default/NotFound.jpg";  
      
      
      switch(picSrc){  
      
        case "t":  
          src='Bilder/traditionell/'+picNr+".jpg";  
          break;  
      
        case "a":  
          src='Bilder/airbrush/'+picNr+".jpg";  
          break;  
      
        case "f":  
          src='Bilder/fotodedsign/'+picNr+".jpg";  
          break;  
      }  
      return src;  
      
    }
    

    Oder eine etwas kompaktere Fassung.

    function getSource(picSrc, picNr){  
      
      switch(picSrc){  
      
        case "t":  
          return 'Bilder/traditionell/' + picNr + ".jpg";  
      
        case "a":  
          return 'Bilder/airbrush/' + picNr + ".jpg";  
      
        case "f":  
          return 'Bilder/fotodedsign/' + picNr + ".jpg";  
      
        default:  
          return 'Bilder/default/NotFound.jpg';  
      }  
    }
    

    Gruß,
    Felix

    --
    "Gott ist tot", Nietsche.
    "Nietsche ist tot", Gott.
    1. Hi,

      foto.src='Bilder/fotodedsign/'+picNr+".jpg";

      Da hat sich wohl auch ein Tippfehler eingeschlichen und sich heimlich fortgepflanzt. :)

      Gruß,
      Felix

      --
      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
      René Descartes
      1. foto.src='Bilder/fotodedsign/'+picNr+".jpg";
        Da hat sich wohl auch ein Tippfehler eingeschlichen und sich heimlich fortgepflanzt. :)

        Danke^^

    2. Danke für den Tip ;)
      Ja manchmal sieht man den Wald vor lauter Bäumen nicht.

      Jetzt hab ich aber die Funktion umgeschrieben, die Fehelermeldung bleibt jedoch gleich...

      Verbatim

  4. Ich habe mal versucht die Paramter über php zu übergeben also

      
    $src='t';  
    $nr=001;  
    echo                "<img onclick=\"activate(".$_src.", ".$_nr.")\" height=\"40\" width=\"100\" alt=\"Bild\" src=\"Bilder/traditionell/001.jpg\"/>";             
    

    Jetzt ist der syntax error weg aber die Fehlerkonsole sagt noch "t is not defined".

    Warum?

    Verbatim

    1. Hallo,

      Ich habe mal versucht die Paramter über php zu übergeben also

      $src='t';
      $nr=001;
      echo                "<img onclick="activate(".$_src.", ".$_nr.")" height="40" width="100" alt="Bild" src="Bilder/traditionell/001.jpg"/>";

      
      >   
      > Jetzt ist der syntax error weg aber die Fehlerkonsole sagt noch "t is not defined".  
      > Warum?  
        
      herrje, guck dir doch bitte mal bei clientseitigen Problemen (Javascript) auch den clientseitigen Quellcode an! Der PHP-Code macht es nur schwierig, den Überblick zu behalten, was da wirklich produziert wird. Das erfordert viel Übung, dann noch durchzublicken.  
        
      Ciao,  
       Martin  
      
      -- 
      [Programmierer (m), seltener auch ~in (w)](http://community.de.selfhtml.org/zitatesammlung/zitat110):  
      Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.  
      P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.  
      P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.
      
    2. Mahlzeit Verbatim,

      Ich habe mal versucht die Paramter über php zu übergeben

      Wenn Du einen Javascript-Fehler hast, ist einzig und allein der Javascript-Code und das umgebende HTML relevant - alles andere (insbesondere serverseitiger Code) spielt keine Rolle. Nur was beim Browser ankommt, ist in diesem Fall interessant.

      Jetzt ist der syntax error weg aber die Fehlerkonsole sagt noch "t is not defined".

      Weil Du keine Variable namens t definiert hast? Was willst Du als ersten Parameter für die Funktion activate() übergeben?

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|