Avatar billede krogstrup Nybegynder
09. februar 2001 - 17:09 Der er 5 kommentarer og
1 løsning

Er popup-vindue åbent - hvis ja: luk det

URL: http://commercial.peter-westh.com

Når man klikker på billederne åbnes der et vindue i samme størrelse som det valgte billede. Hvis man lader et popup-vindue forblive åbent og i baggrunden trykker på et nyt billede, åbnes det nye billede i popup-vinduet, men popup-vinduets størrelse ændres IKKE. Dette er et stort problem, da billerne herved bliver beskåret !!!

Jeg ønsker at gøre følgende:

Når man klikker på et lille billede, undersøger javascriptet om popup-vinduet er åbent i forvejen. Hvis dette er tilfældet, skal det lukkes inden der åbnes et nyt!

Hvordan gør jeg det ?
Avatar billede jakoba Nybegynder
09. februar 2001 - 18:04 #1
Du skal ændre i din fil /includes/javascripts/popup.js
så den bliver:

var popup = false;

function openpopup(url,w,h) {

if ( ( popup ) && !popup.closed ) popup.close();
    popup=window.open(url,\'ny\',\'toolbar=no,copyhistory=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=\' + w + \',height=\' + h);
popup.closed = false;
        if (!(navigator.appName == \"Microsoft Internet Explorer\" && parseInt(navigator.appVersion.substring(0,1)) <4))
        {popup.focus();}
}

det skulle kunne gøre det.

mvh JakobA
Avatar billede jakoba Nybegynder
09. februar 2001 - 18:16 #2
Men prøv evt også:

var popup = false;

function openpopup(url,w,h) {

  if ( ( popup ) && !popup.closed ) {
    popup.location.href=url; 
    popup.resizeto(w,h);
  } else {
    popup=window.open(url,\'ny\',\'toolbar=no,copyhistory=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=\' + w + \',height=\' + h);
    popup.closed = false;
  };
  if (!(navigator.appName == \"Microsoft Internet Explorer\" && parseInt(navigator.appVersion.substring(0,1)) <4))
        {popup.focus();}
}

den vil nok give et mere \"roligt\" billedskift
Avatar billede jakoba Nybegynder
09. februar 2001 - 18:18 #3
ups. resizeto er med stort T
    popup.resizeTo(w,h);
Avatar billede jakoba Nybegynder
11. februar 2001 - 00:46 #4
uden mulighed for  focus()  duer resize metoden ikke.
allenfals duer det ikke i gamle ie.  (popop) tester aldrig false.
så vi må dele løsningen over begge vinduer:

i den genererede .asp fil indlægges en onUnload i body taggen:
<body ... onUnload=\"self.opener.popup=false;\">

og i siden med thumbnails indsættes nedenstående istedet for den nuværende openpopup funktion:

var popup = false;

var okBrow =    ( ( navigator.Appname == \"Netscape\" )
                &&( parseInt(navigator.appVersion.substring(0,1))>=3 ) )
            || ( parseInt(navigator.appVersion.substring(0,1))>=4 );

function openpopup(url,w,h) {
  if ( okBrow ) {  // Ok for NS3+, IE4+, Opera4+, ?
    if ( popup ) {
      popup.location.href=url;
      popup.resizeto(w,h);
    } else {
      popup=window.open(url,\'ny\',\'toolbar=no,copyhistory=no,location=no,\'
                  +\'directories=no,status=no,menubar=no,scrollbars=no,\'
                  +\'resizable=yes,width=\' + w + \',height=\' + h);
    };
    popup.focus();
  } else {
    if ( popup ) popup.close();
    popup=window.open(url,\'ny\',\'toolbar=no,copyhistory=no,location=no,\'
                +\'directories=no,status=no,menubar=no,scrollbars=no,\'
                +\'resizable=no,width=\' + w + \',height=\' + h);
  }
}; //end openpopup()

mvh JakobA
Avatar billede krogstrup Nybegynder
12. februar 2001 - 11:09 #5
Der opstod en fejl under kørslen
Vil du søge efter fejlen

Linie 11
Fejl: Objektet understøtter ikke denne egenskab eller metode


Linie 11 ser således ud:

popup.resizeto(w,h);


Jeg bruger IE 5.0

Tillader den ikke metoden \"resize\" ???

Kan bare man ikke bare gøre som jeg foreslog i mit spm, og lukke popup´en hvis den er åben i forvejen ???
Avatar billede krogstrup Nybegynder
12. februar 2001 - 11:48 #6
Fandt selv ud af det...

Tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester