floater: Per JS Background-Image setzten

Hallo,

ich setze durch Klicken auf Links per Javascript bei einem Element verschiedene Background-Images.

Das ganze funktioniert im Firefox(2.0) hervorragened.
Allerdings im MSIE 6.0 nur bedingt. Eine JS-Fehlermeldung gibt es nicht.
Im MSIE wird die geänderte Hintergrundgrafik nur angezeigt, wenn ich nach dem Setzen der Grafik eine Ausgabe per window.alert('xxxx'); mache.

Hier mal meine Scripte:

<html-code>
<a href="javascript:void(0);" id="index_0" onClick="changeGaleryImages(this.id);"><img src="galeryNavImages/index_0_0.jpg" alt="" width="45" height="45"></a>
<a href="javascript:void(0);" id="index_1" onClick="changeGaleryImages(this.id);"><img src="galeryNavImages/index_0_0.jpg" alt="" width="45" height="45"></a>
</html-code>

---------------------------------

<js-code>
function changeGaleryImages(galeryID)
{
 var galerySource = "";

// TEST
  if(galeryID == "index_2") { galeryID = "index_0"; }
  else if(galeryID == "index_3") { galeryID = "index_1"; }
 galerySource = window.document.getElementById("contentImageArea").style.backgroundImage;
 window.document.getElementById("contentImageArea").style.backgroundImage = "url(" + "galery/" + galeryID + ".jpg" + ")";
 // TEST
  galerySource = window.document.getElementById("contentImageArea").style.backgroundImage;
  window.document.getElementById("rightCell").firstChild.nodeValue = galerySource;
  // window.alert(galeryID);
}
</js-code>

Testhalber lasse ich mir auch noch mal den Namen der geladenen Hintergrundbilddatei ausgeben. Der Name ist korrekt.

Hat da jemand eine Idee?

Gruß,
Floater

  1. Hallo,

    nachdem man im MSIE zig-Male auf den Link klickt, dann wird die Hintergrundgrafik manchmal angezeigt.

    kann es mit einem Cashe-Problem zusammenhängen, oder damit, dass die Dateigröße der Hintergrundgrafik im MSIE nicht überschritten werden darf?

    Gruß,
    Floater

  2. Hallo,

    bisher habe ich nur von Opera gelesen, dass manchmal Seiten nicht gerendert werden. Dort hilft dann z.B. backgroundColor neu zu setzen.

    hier liegt es vielleicht an deinem Link: "javascript:void();"

    vielleicht gehts so besser:

      
    <a href="javascript:void()" onclick="changeGaleryImages(this.id);return false;" ... ><img src=....></a>  
    
    

    dann würde der "Link nicht ausgeführt"

    bevozugen würde ich allerdings:

      
    <img src="..." onclick="changeGaleryImages(this.id)" id="index_0"  
    style="cursor:pointer;">  
    
    

    oder s.ä.

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. Hallo,

      vielleicht gehts so besser:

      <a href="javascript:void()" onclick="changeGaleryImages(this.id);return false;" ... ><img src=....></a>

      
      > Gruß plan\_B  
        
        
      Danke. Das Hinzufügen von "return false;" ist die Lösung.  
        
      Mit  
      
      > ~~~html
        
      
      > <a href="javascript:void(0)" onclick="changeGaleryImages(this.id);return false;" ... ><img src=....></a>  
      > 
      
      

      funktioniert es aich im MSIE, so wie es sein soll.

      Gruß,
      Floater

  3. <a href="javascript:void(0);" id="index_0" onClick="changeGaleryImages(this.id);"><img src="galeryNavImages/index_0_0.jpg" alt="" width="45" height="45"></a>

    wozu den Link? Der ist hier überflüssig und für dein Problem offensichtlich verantwortlich. Der onclick (das C kann ruhig klein geschrieben werden) läßt sich auch auf dem Bild ausführen:

    <img src="galeryNavImages/index_0_0.jpg" alt="" width="45" height="45"  
    id="index_0" onclick="changeGaleryImages(this.id);">  
    
    

    und wenn du die Hand noch haben willst, einfach style="cursor:pointer" noch reinpacken.

    Struppi.

    --
    Javascript ist toll (Perl auch!)