Gå til innhold

Lukke "popup" boks med java


Anbefalte innlegg

Hællæ,

 

Har følgende kode som åpner en popupboks;

 

<a href="hjelp/navn.php" onClick="return show_hide_box(this,150,170,'2px #AEF303 dotted')">

 

Selve koden er;

 

function move_box(an, box) {
 var cleft = 0;
 var ctop = 0;
 var obj = an;
 while (obj.offsetParent) {
   cleft += obj.offsetLeft;
   ctop += obj.offsetTop;
   obj = obj.offsetParent;
 }
 box.style.left = cleft + 'px';
 ctop += an.offsetHeight + 8;
 if (document.body.currentStyle &&
   document.body.currentStyle['marginTop']) {
   ctop += parseInt(
     document.body.currentStyle['marginTop']);
 }
 box.style.top = ctop + 'px';
}

function show_hide_box(an, width, height, borderStyle) {
 var href = an.href;
 var boxdiv = document.getElementById(href);

 if (boxdiv != null) {
   if (boxdiv.style.display=='none') {
     move_box(an, boxdiv);
     boxdiv.style.display='block';
   } else
     boxdiv.style.display='none';
   return false;
 }

 boxdiv = document.createElement('div');
 boxdiv.setAttribute('id', href);
 boxdiv.style.display = 'block';
 boxdiv.style.position = 'absolute';
 boxdiv.style.width = width + 'px';
 boxdiv.style.height = height + 'px';
 boxdiv.style.border = borderStyle;
 boxdiv.style.backgroundColor = '#fff';

 var contents = document.createElement('iframe');
 contents.scrolling = 'no';
 contents.frameBorder = '0';
 contents.style.width = width + 'px';
 contents.style.height = height + 'px';
 contents.src = href;

 boxdiv.appendChild(contents);
 document.body.appendChild(boxdiv);
 move_box(an, boxdiv);

 return false;
}

 

Dette funker glimrende, eneste som jeg ønsker er en knapp i den popup boksen som kan lukke selve popupen. Slik det er nå kan jeg trykke på den samme linken igjen så lukker den seg. Men har prøvd med window.close på selve boksen og får det ikke til å fungere.

 

Forslag ?:)

Lenke til kommentar
Videoannonse
Annonse

Jeg er veldig sikker på at du må bruke self.close()

<input type="button" value="Jeg er ferdig" onclick="self.close()" />

 

Jeg skrev en gang et JS som kunne lukke vinduer som ikke var åpnet av scripts.... må se om jeg finner det igjen...

Endret av Kagee
Lenke til kommentar
Jeg er veldig sikker på at du må bruke self.close()

<input type="button" value="Jeg er ferdig" onclick="self.close()" />

 

Jeg skrev en gang et JS som kunne lukke vinduer som ikke var åpnet av scripts.... må se om jeg finner det igjen...

8177044[/snapback]

Tusen takk hvis du kan finne den, trenger det sårt til min side. Får det rett og slett ikke til. Prøvde også self.close()

Lenke til kommentar

Å... Ops.... Jeg leste vist ikke koden din helt..... Dette er ikke et vanlig popupvindu slik som javascript lager med window.open, men et vindu som ligger "oppå" siden.....

 

Du kan prøve

<input type="button" value="lukk" onclick="document.boxdiv.style.display='none'" />

Lenke til kommentar
Å... Ops.... Jeg leste vist ikke koden din helt..... Dette er ikke et vanlig popupvindu slik som javascript lager med window.open, men et vindu som ligger "oppå" siden.....

 

Du kan prøve

<input type="button" value="lukk" onclick="document.boxdiv.style.display='none'" />

8184362[/snapback]

Uff, nei. Har prøvd en del nå, vurderer snart å gå over til vanlig poppegreier men synes det kler siden bedre slik det er nå. Så tar gjerne imot flere tips, hvis du vil se det i action kan du sjekke denne linken

 

http://bliz.h-base.org/beta/index.php?side...d=1&um=bestille

 

Bruker det når man trykker på de grønne hjelp bildene :)

Lenke til kommentar
Legg til noe slikt som dette:

boxdiv.onclick = function () {this.style.display='none';};

Sammen med alle de andre boxdiv tingene i show_hide_box() så burde det hjelpe.

8197323[/snapback]

Tusen takk, prøvde slik;

 

boxdiv = document.createElement('div');
 boxdiv.setAttribute('id', href);
 boxdiv.style.display = 'block';
 boxdiv.style.position = 'absolute';
 boxdiv.style.width = width + 'px';
 boxdiv.style.height = height + 'px';
 boxdiv.style.border = borderStyle;
 boxdiv.style.backgroundColor = '#fff';
 boxdiv.onclick = function () {this.style.display='none';};

Sammen med de to kodene tidligere oppe her. Men fungerte fremdeles ikke. :(

Lenke til kommentar
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...