Stefan: .SRC nicht verfügbar

Hallo an alle,

bin in JS n ziemlicher Neuling, aber ich versuch hier trotzdem ein Problem zu loesen, was mir irgendwie nicht erschwinglich ist.

Folgendes:

Habe ein <div id="x" name="x"></div> indem ein schönes "es wird geladen.." JPG liegt. Soweit sogut. Beim Hovern versch. Links soll dieses Bild jedoch ersetzt werden. Dazu rufe ich folgende Funktion auf
in meinem onMouseOver event.

ersetzeBild('bildID');

Die Funktion dazu sieht folgendermaßen aus. (Hab das nun mal etwas "debugged" damit ich erkennen kann wo es hängt.)

function ersetzeBild(id) {

var pfad, me, mestyle;

pfad = "/images/"+id+"_old.jpg";

if (document.getElementById) {

alert("document.getElementByID läuft...");

me = document.getElementById("bildervorschau");

if (me) {
   alert("me existiert...");

mestyle = me.src;

if (mestyle) {
    alert ("mestyle existiert...");
    mestyle.src = pfad;
   }
  }
 }
}

Bis zu der If Abfrage if(mestyle) läuft alles durch, dann is schluss. Als Fehlermeldung kommt Objekt NULL oder kein Wert. Und ich hab langsam keine Ideen mehr.

Das erstaunliche ist ja ..

document.getElementById("bildervorschau").style.display = "block";

funktioniert. D.h. dort ist .style ja auchvorhanden. .src allerdings nicht ;-)

Wäre um jede Hilfe dankbar.

Viele Grüße.

  1. Hallo,

    […]
       mestyle = me.src;

    „mestyle“ wird also die URI des Bildes zugewiesen. Ist also ein String…

    if (mestyle) {
        alert ("mestyle existiert...");
        mestyle.src = pfad;
       }

    …welches keine src-Eigenschaft haben kann.

    Bis zu der If Abfrage if(mestyle) läuft alles durch, dann is schluss. Als Fehlermeldung kommt Objekt NULL oder kein Wert.

    Du hättest ja nicht gerade den schlechtesten Debugger nehmen müssen ;-)

    Und ich hab langsam keine Ideen mehr.

    Weise der Variablen die Referenz des Bild zu, nicht den Inhalt des src-Attributs.

    mfg. Daniel

    1. mestyle = me.src;

      „mestyle“ wird also die URI des Bildes zugewiesen. Ist also ein String…

      okay, soweit verstanden...

      …welches keine src-Eigenschaft haben kann.

      auch verstanden.

      Du hättest ja nicht gerade den schlechtesten Debugger nehmen müssen ;-)

      besser als gar keinen :D

      Weise der Variablen die Referenz des Bild zu, nicht den Inhalt des src-Attributs.

      nicht verstanden *g*

      Danke trotzdem erstmal ;)

      1. Hallo,

        Du hättest ja nicht gerade den schlechtesten Debugger nehmen müssen ;-)

        besser als gar keinen :D

        *g* OK, ich wollte darauf anspielen, dass Firefox/Opera die Fehlermeldungen teilweise verständlicher formulieren.

        Weise der Variablen die Referenz des Bild zu, nicht den Inhalt des src-Attributs.

        nicht verstanden *g*

        Also…
        du hast ein Bild. Und genau dieses solltest du auch in die Variable schreiben.

        Obwohl, genau das hast du ja bereits gemacht ;-)

        Du brauchst „mestyle“ also im Prinzip gar nicht. Greife einfach nur auf die Einschaften von „me“ zu.

        Du kannst den hinteren Teil also auch ohne Probleme so schreiben:

          
        if (me.src){  
            alert ("me hat ein src-Attribut");  
            me.src = pfad;  
        }  
        
        

        mfg. Daniel

    2. Also nochmal zusammenfassend.

      Ich hab das schon soweit verstanden.

      mestyle = document.getElementById("bildervorschau");

      Danach läuft die If Abfrage auch durch - das passt dann schon.
      Aber mestyle.src = pfad wird trotzdem nicht ausgeführt.

      Hab das ganze mal sehr strikt gekürzt und folgendes draus gemacht.

      pfad = "/images/"+id+"_old.jpg";
       me = document.getElementById('bildervorschau');
       me.style.display = "block";
       me.src = pfad;

      Er meldet keinen Fehler - sehr gut. nur warum wird das Bild nicht geändert? wenn ich ein alert(pfad); mach, dann krieg ich auf jedenfall den korrekten pfad. Aber me.src interessiert ihn wohl nicht :)

      1. Hallo,

        Hab das ganze mal sehr strikt gekürzt und folgendes draus gemacht.

        pfad = "/images/"+id+"_old.jpg";
        me = document.getElementById('bildervorschau');
        me.style.display = "block";
        me.src = pfad;

        Das sieht richtig aus (sofern die Variable „id“ im Bildpfad irgendwo definiert ist).

        Er meldet keinen Fehler - sehr gut. nur warum wird das Bild nicht geändert? wenn ich ein alert(pfad); mach, dann krieg ich auf jedenfall den korrekten pfad. Aber me.src interessiert ihn wohl nicht :)

        Das wundert mich jetzt aber. Ist das Bild vorhanden?

        Wenn ja:
        Kannst du evtl. mal ein Beispiel verlinken?

        mfg. Daniel

        1. Schick mir mal ne Email an meine Adresse, dann kriegst einen Link zurück. Wuerde die Adresse hier ungern posten :)

      2. mestyle = document.getElementById("bildervorschau");

        ist das überhaupt ein img Element?

        pfad = "/images/"+id+"_old.jpg";

        was wird angezeigt, wenn du im HTML Code:
        <img src= "/images/id_old.jpg">

        einbaust (wobei id durch ein vorhandenens Bild ersetzt werden muss)

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. OMG *g* Lyncht mich ^^ ;-)

          Naja.. ich hab da ein etwas sehr besch.. Fehler gemacht.

          <div id="bildervorschau" name="bildervorschau><img src="la"></div>

          das Div muss ein/ausgeblendet werden - das hat funktioniert.
          Nur wenn das IMG Tag keine ID hat, wird das sehr sehr, dass
          da irgendein Bild ersetzt wird. Asche auf mein Haupt.

          Vielen Dank für den Klasse Tip Struppi.

          Viele Grüße.