Avatar billede ulli Nybegynder
18. oktober 2001 - 20:22 Der er 4 kommentarer og
1 løsning

pop-up lukker, men reloader \'opener\' siden forkert

Jeg har et site med en gennemgående navigationsmenu. Den er lagt i en seperat fil, som så indlæses på alle sider. Når man klikker på følgende link, åbnes pop-up\'en fint:
---                        <a href=\"gr_opretomraade.php\"
                          onClick=\"return popup(this,\'vinopretomraade\',\'width=300,height=410\',\'yes\')\">New area</a><br>
---
koden der åbner ser sådan ud:
---
function popup(link,name,att,refocus){
var mywin, href;
  if (typeof(link) == \'string\')
    href=link;
  else
    href=link.href;
  mywin = window.open(\'\',name,att);

// if we just opened the window
  if (mywin.closed || (! mywin.document.URL) || (mywin.document.URL.indexOf(\"about\") == 0))
      mywin.location=href;
  else if (refocus)
    mywin.focus();
  return false;
}
---
pop-up vinduet har følgende knap der skal lukke vinduet:
---
            <input type=\"button\" value=\"Cancel\" onClick=\"return targetopener(this,true,\'\')\"></center></form>
---
targetopener funktionen ser ud som følger:
---
function targetopener(mylink, closeme, closeonly) {
  if (! (window.focus && window.opener))return true;
  window.opener.focus();
  if (! closeonly)window.opener.location.href=mylink.href;
  if (closeme)window.close();
  return false;
}
---

Humlen ligger i, at bevæger jeg mig lidt ind på mit site, klikker på linket, så lukkes pop-up\'en fint, og opener-vinduet kommer frem, genindlæses -> MEN smider mig tilbage på forsiden, hvilket den ikke skal. Hvordan kringler jeg den???
Avatar billede ulli Nybegynder
18. oktober 2001 - 20:26 #1
Jeg prøver lige igen...:)

Humlen ligger i, at bevæger jeg mig lidt ind på mit site, og klikker på linket, så kommer pop-up vinduet fint frem. klikker jeg på cancel-knappen, lukkes pop-up\'en også fint, og opener-vinduet kommer frem, genindlæses -> MEN smider mig tilbage på forsiden, hvilket den ikke skal. Hvordan kringler jeg den???

Det må vel være \'self\' i kaldet der bliver til mylink i targetopener, som ikke er korrekt...!?!

Avatar billede jakoba Nybegynder
18. oktober 2001 - 20:29 #2
der er ikke nongen href property i denne knap.

<input type=\"button\" value=\"Cancel\" onClick=\"return targetopener(this,true,\'\')\">

hvad med bare at give funktionen den rigtigt Url med:

            <input type=\"button\" value=\"Cancel\" onClick=\"return targetopener(\'http://www.eksperten.dk\',true,\'\')\"></center></form>
---
targetopener funktionen ser ud som følger:
---
function targetopener(myurl, closeme, closeonly) {  // RETTET
  if (! (window.focus && window.opener))return true;
  window.opener.focus();
  if (! closeonly)window.opener.location.href=myurl; // RETTET
  if (closeme)window.close();
  return false;
}

mvh JakobA
Avatar billede ulli Nybegynder
18. oktober 2001 - 20:42 #3
Det vil jeg gerne - men det er ikke en statisk URL, da pop-up kan åbnes fra flere forskellige steder på sitet. Så skal man kunne sende URL med, i det øjeblik man åbner pop-up\'en, men det kan så vidt jeg ved, ikke stoppes ind i window.open().

Findes der alternative løsning til at sende noget med til et pop-up vindue?
Avatar billede jakoba Nybegynder
18. oktober 2001 - 20:56 #4
Det er rimeligt nemt:

window.open( \'popopurl.html?retururl.html\', \'vinnavn\' )

nu kommer strengen  retururl.html  med som url-åarameter,
Det er damme måde data sendes i en form der har method=\'get\'

for at få fat i parameteren inden i det der popopvindue skriver du i dets htmlfil:

<script language=\'javascript\'>

var returaddr = \'defaulturl.html\'
var p = document.URL.split(\"?\");
if ( p.length > 1 )
    returaddr = p[1];

</script>

variabelen  returaddr  indeholder så den adresse vi ønsker at returnere til.

mvh JakobA
Avatar billede ulli Nybegynder
18. oktober 2001 - 22:04 #5
Du har så ærligt fortjent dem... *G*
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