PopUp öffnet nur einmal im IE

mackattack

Mitglied
Moin,

ich dreh gleich am Teller.
Ich hab ne JS Funktion, die mir ein PopUp öffnet und ein dort eine Seite lädt, die die ein Foto einbindet, welches ich per Parameter übergebe. Damit das PopUp nur so groß dargestellt wird, wie das Foto auch ist, wird die Größe des Bildes schon im JS errechnet.
PHP:
function Foto(img, bezeichnung)
{
  foto1= new Image();
  foto1.src=(img);
  foto1.onload=function()
  {
    src = "pop.foto.php?src="+img+"&bezeichnung="+bezeichnung;
    breite=foto1.width+0;
    hoehe=foto1.height+20;
                string="width="+breite+",height="+hoehe+",location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbar=no";
//   alert(img+" - "+string);
    fenster=window.open(src,bezeichnung,string);
  }
}

Es ist ja nicht so, dass es garnicht läuft, halt nur ma wieder im IE nicht korrekt.
Alles sehr strange... wie ich bei der Suche rausgefunden hab, haben viele ähnliche Probleme, aber irgendwo dann doch nich :p. Bei den Meisten öffnen sich die PopUps garnicht.
Stellt euch das so vor:
Ich hab ein PopUp, wo ein Thumbnail eines Bildes zu sehen ist. Klickt man auf dieses Thumb, dann wird
PHP:
<a href="javascript:Foto('Bilder/Bild1.jpg', 'fotofenster');">
aufgerufen. Meistens - ja, wirklich meistens - öffnet der IE ein einziges Mal dieses PopUp. Der FireFox hingegen jedes Mal. Und nein, es ist kein PopUp Blocker installiert. Nutze die 6.0 Version des IE und die 1.0.4 des FF.
Mich bring das echt noch zum Verzweifeln. Ich habs auch schon mit <a onClick.. probiert -> noChance (zumindest nich im IE :rolleyes: )

Wär echt toll, wenn jemand von euch eine Lösung parat hat, oder mir dabei hilft, mich auf den richtigen Weg zu bringen ;)

Gruß
 
Zuletzt bearbeitet:
Hallo,
danke für eure schnellen Antworten.

Ja, du hast recht, den Thread hatte ich echt nich gesehen.
Leider hat das aber auch nix gebracht... und komischerweise ist es aber wirklich so, dass es im FF funktionierte @em-ix
Wie soll ich das denn Realisieren, dass der Bezeichner jedes mal ein anderer ist? So, wie ich das in dem anderen Thread gelesen hab, müsste er ja dennoch immer der gleiche sein, oder nicht? Oder was macht die Funtion eval()?
Ich hab das gerade auch schon ausprobiert, einfach eine Zufallszahl an den Bezeichner anzuhängen... aber auch das geht nich, obwohl mir auch kein JS-Fehler angezeigt wird.

EDIT:
Hier die Versuche mit den Infos aus dem anderen Thread und die (auskommentierten) Versuche mit dem Random.
PHP:
function Foto(img, bezeichnung)
{
  foto1= new Image();
  foto1.src=(img);
//  bezeichnung += Math.random();
//  alert(img+" - "+bezeichnung);
  foto1.onload=function()
  {
    src = "pop.foto.php?src="+img+"&bezeichnung="+bezeichnung;
	
    breite=foto1.width+0;
    hoehe=foto1.height+20;
    string="width="+breite+",height="+hoehe+",location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbar=no";
    
	eval(bezeichnung+' = window.open(src,bezeichnung,string)');
	eval(bezeichnung+'.focus()');
//    fenster=window.open(src,bezeichnung,string);
  }
}
 
Zuletzt bearbeitet:
So, wie du es momentan hast, wird auf jeden Fall ein Poupblocker drauf ansprechen(dass du keinen installiert hast, ist ja eher unwichtig....andere haben einen). Grund: das Öffnen des Popups erfolgt nicht nach einen Klick-Event(sondern nach dem onload des Bildes).

Lösung: Öffne das Fenster sofort.... nach dem onload des Bildes ändere nur noch seine Grösse.
Das geht zwar auch nur, wenn der User im Browser das Ändern der Fenstergrösse nicht unterbunden hat.... aber wenigstens hast du dann das Fenster offen.

Zu dem 2.Parameter: wenn du immer ein neues Fenster öffnen willst, kannst du dort auch "_blank" angeben...das ist ein geschützer Fenstername und bewirkt, dass immer neue Fenster geöffnet werden.

Summa Summarum:
Code:
function Foto(img, bezeichnung)
{
  foto1= new Image();
  
  foto1.onload=function()
  {
    fenster.resizeTo(breite,hoehe);
  }
  foto1.src=(img);
  src = "pop.foto.php?src="+escape(img)+"&bezeichnung="+escape(bezeichnung); 
  breite=foto1.width+0;
  hoehe=foto1.height+20;
  string="width=150,height=150,status=yes,resizable=yes";
  fenster=window.open(src,'_blank',string);
  fenster.focus();
}
 
Hey...
dankeschön.
Das Fenster geht nun auf (ein Lichtblick ;))

Leider hat das Resizen des Fenster nicht ein einziges Mal geklappt.
Sollte ich das vllt. von der foto.php übernehmen lassen?
 
Kannst du mir denn verraten, wo ich dies im IE einstellen kann?
Ich hab an den Einstellungen nix geändert und es würde mich wundern, wenn der IE diese Option standardmäßig ausschaltet.
Übrigens klappt das Resizen auch im FF nicht.

Ich bin echt verzweifelt... das kann doch nich sooo das Problem sein :confused:
 
Unter
Internetoptionen>Sicherheit
findest du die Option Skript initiierte Fenster ohne Grössen- und Positionsbeschränkungen zulassen
...diese Einstellung ist dafür zuständig.

Im FF findest du die Option bei den erweiterten Javascript-Einstellungen(wo diese genau sind, hängt von der FF-Version ab)
 
Sven Mintel hat gesagt.:
Unter
Internetoptionen>Sicherheit
findest du die Option Skript initiierte Fenster ohne Grössen- und Positionsbeschränkungen zulassen

Tut mir leid, ich hab diese Option nicht. Hängt das evtl. mitm 6.0 IE zusammen Ich hab echt alles abgesucht, ich bin ja nun auch kein vollkommener Depp ;).
Und im FF hab ich die Option gefunden und sie ist definitiv aktiviert. Ist vllt an dem Code nochwas falsch? Kann man auf die Höhe und Breite denn zugreifen, wenn die unter der onLoad Funktion deklariert werden?
 

Neue Beiträge

Zurück