chrischris: Popup geht nicht mehr, sobald <img> tag drin (Firefox only)

Hallo! Ich habe folgendes Problem:
Ich habe eine php-Seite mit Foto-Thumbnails, beim klick auf diese öffnet sich ein Popup, in dem das Bild in Orginalgröße ist, beim Klick auf dieses Bild wiederum schließt sich das Popup.

Im Explorer funktioniert es, bei Firefox habe ich folgendes Problem: Das Popup öffnet sich (richtige Größe & Position, aber es wird darin keinerlei Inhalt angezgeigt (nicht mal die "Ränder" einer leeren Seite, der Cursor zeigt eine Maus mit Sanduhr an). Sobald das Bild im Code weggelassen wird und stattdessen die von der Ursprungsseite übergebene Bildurl als Text angezeigt wird, gehts auch im Firefox.

Hier der Code:

<script language="JavaScript">
function popup(w,h,url) {
 x=screen.availWidth/2-w/2;
 y=screen.availHeight/2-h/2;
 var popupWindow=window.open
('','','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y);
 popupWindow.document.write("<div style="position:absolute; left:0px; top:0px;">");
        popupWindow.document.write("<a href="javascript:self.close()"><img src='");
        popupWindow.document.write(url);
        popupWindow.document.write("'></a></div>");
 }
</script>

Aufgerufen wird es mit href="javascript:popup
($breite,$hoehe,$bildurl)". Kann der Fehler daran liegen? Ich weiß, dass man das Popup eigentlich bei onclick="jav.." aufrufen müsste, nur wenn ich das mache tut sich bei mir immer gar nix mehr, und davor hat sich wenigstens ein Fenster geöffnet ;).

Schonmal ganz herzlichen Dank für jede Antwort

~chris

  1. Hallo chris,

    popupWindow.document.write("<div style="position:absolute; left:0px; top:0px;">");
            popupWindow.document.write("<a href="javascript:self.close()"><img src='");
            popupWindow.document.write(url);
            popupWindow.document.write("'></a></div>");
    }

    was steht nun deiner Meinung nach im Popup?

    <div style="position:absolute; left:0px; top:0px;">
      <a href="javascript:self.close()">
      <img src="...url...">
      </a></div>

    Ist das valides HTML?

    1. verteile ein paar <html> <body> usw. in deinem Code.
    2. öffne vorher das Dokument zum schreiben: document.open('text/html'); ist an dieser Stelle nicht verkehrt
    3. Schließe es anschließend auch wieder: document.close();

    HTH

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. Da sieht mans mal wieder. Hätte ich anständig und ordentlich programmiert, hätte ich mir viele Stunden Fehlersuche erspart!! :-)

      Danke Jochen!