Axel Richter: Bilder anzeigen im IE 6

Beitrag lesen

Hi,

habe folgendes Problem. Manchmal werden Bilder einfach nicht angezeigt. Wenn man dann mit der rechten Maustaste draufklickt und im Kontextmenu auf Eigenschaften klickt, werden alle Eigenschaften genannt, außer den kb. Wenn man dann auf "Bild anzeigen" klickt, werden sie doch geladen. Bei netscape und opera werden dagegen die Bilder ohne Problem gezeigt. Der Link zu der Problemseite:

http://www.berlin-gleisdreieck.de/Seiten/aktuelles/aktuelles_Frameset04.htm

Dort im untermenu (frame unten links) "Der Park auf dem Potsdamer Bahnhof" wählen, es geht um die Bilder in dem oberen frame, die über das Dreieck-icon oder die Textlinks im unterem frame gesteuert werden.

Über Tips zur Problemlösung wäre ich sehr dankbar.

Codeauszüge mit Kommentaren zum TraumWeber (ich tippe doch richtig?):
1. Du lädst mit
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
bei body onload sehr viele große (5-10KB) Bilder vor. Das dauert halt ein wenig.

2. Du baust schlecht zu rendernde Tabellen auf. Das bringt den IE wahrscheinlich durcheinander.

<div id="hhaus" style="position:absolute; left:0; top:0; width:359px; height:300px; z-index:9; overflow: visible; background-color: #CCCCCC; layer-background-color: #CCCCCC; border: 1px none #000000; visibility: visible">
<!--Der div ist 300px hoch. Mit overflow:visible kann IE nichts anfangen.-->

<table width="100%" border="0" bgcolor="#CCCCCC" height="25" name="bilderbuch">
<!--Die Tabelle ist 25px hoch. Das macht nun wieder der IE - leider.-->

<tr>
      <td colspan="2"><img src="../../../grafik2/Ladestrasse/kopfbau.jpg" width="350" height="250"></td>
<!--Das Bild ist 250px hoch. Damit ist die Zeile 250px+2*cellpadding.-->

</tr>
    <tr>
      <td align="left" valign="top" width="76%" height="38">
        <div align="left" class="12punkt"> Der Kopfbau des Anhaltergüterbahnhofs
          1911</div>
      </td>
<!--Die Zelle ist 38px hoch. Damit die Zeile 38px+2*cellpadding.-->

<td align="left" valign="top" nowrap width="24%" height="38">
        <div align="right"><a href="javascript:;" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3021','','../../../Grafik/pfeil_links_negativ_umkehr.gif',1)" onClick="MM_showHideLayers('kopfbau','','show','hhaus','','hide')"><img name="Image3021" border="0" src="../../../Grafik/pfeil_links_negativ.gif" width="27" height="27"></a>  <a href="javascript:;" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3121','','../../../Grafik/pfeil_rechts_grau_U.gif',1)" onClick="MM_showHideLayers('Zschwechten','','show','hhaus','','hide')"><img name="Image3121" border="0" src="../../../Grafik/pfeil_rechts_negativ.gif" width="27" height="27"></a>  </div>
      </td>
    </tr>
  </table>
</div>

Der div ist 300px hoch. Darin ist eine Tabelle, die für den IE zunächst mal 25px hoch ist, dann aber, aufgrund des Inhalts cellspacing+cellpadding+250px+cellpadding+cellspacing+cellpadding+38px+cellpadding+cellspacing werden muss, wobei Du cellpadding und cellspacing nicht vorgibst. Das Ganze in einem absolut positionierten div mit fix 300px Höhe.

Eine Lösung habe ich auch nicht parat. Aber Du könntest versuchen, ob die Bilder "sicherer" angezeigt werden, wenn die Dimensionen von div, Tabelle und Bildern besser übereinstimmen.

Bsp: Tabelle ohne Höhenangabe mit cellpadding="0" und cellspacing="0", dann müssten die beiden Zeilen mit 250px + 38px sicher in den div mit 300px Höhe passen.

Gruß

Axel