Avatar billede eazye Nybegynder
10. september 2002 - 23:28 Der er 11 kommentarer og
1 løsning

Lukke vindue når det ikke ses!

Hey Eksperter!

I et gallery, har jeg sat hvert billede til at åbne billedet i stort i et nyt vindue. dette vindue vil jeg gerne have skal lukke sig, når vinduet med billedet ikke er det foreste på skærmen.. altså hvis man eks klikker et andet sted på siden (ikke i vinduet).

-EazyE
Avatar billede Noone Nybegynder
11. september 2002 - 00:14 #1
Ret dit body tag til at ligne det her:

<body onBlur="window.close()">

Det skulle gøre tricket.
Avatar billede nikolajdu Nybegynder
11. september 2002 - 00:15 #2
chanoa - Den kom jeg også med - Problemet er at den "blurrer" også hgvis der klikkes på et link og så lukker siden....
Avatar billede nikolajdu Nybegynder
11. september 2002 - 00:18 #3
Forsøgte mig i øvrigt med den her :

<html>
<head>
    <title>win2</title>
<script>

function tjeck(klik){
if(klik){
alert("ind")
return false
    }else{
    alert("ud")
    self.close()
    }
}
</script>
</head>

<body onblur="tjeck(false)">
hej her er mit vindue og et lille <a href="test1.html" onclick="tjeck(true)">link</a>
</body>
</html>

Problemet er så bare at den altid ligegyldigt hvad åbenbart tager <body´s> blur først...

/Nikolaj
Avatar billede Noone Nybegynder
11. september 2002 - 00:24 #4
Kan man ikke capture mousedown events på linket?
Avatar billede nikolajdu Nybegynder
11. september 2002 - 00:27 #5
Jo, men hvad så med sleve bodyen...
Avatar billede Noone Nybegynder
11. september 2002 - 01:10 #6
Så vidt jeg forstod, so var meningen at en popup skulle forsvinde nar den ikke længere var det aktive vindue.
Avatar billede mik789 Nybegynder
11. september 2002 - 06:32 #7
Nu ved jeg ikke om dine billeder åbner i det SAMME vindue eller hvert billede åbner i et nyt vindue. Men jeg bruger et script der åbner noget forskelligt indhold I det samme nye vindue (altså ikke hvert nyt billede i et nyt vindue) men FRA den samme side. I IE vil det så være sådan at når der klikkes uden for vinduet vil det automatisk minimeres, men ikke lukkes. Jeg har så en anden funktion der automatisk lukker vinduet, når man forlader siden. Kan du bruge det?

// FUNKTION DER ÅBNER VINDUE
function openWin(billede) {
  if (self.win&&!win.closed) {
    if (IE) win.focus(); // fokus kun i IE, da vinduet er og skal forblive "dependent" i NS
    win.location=billede;
  } else {
    win = window.open(billede, "win", "width=580,height=300,top=0,left=0,scrollbars=yes,resizable=yes,dependent=yes");
    if (IE) win.focus();
  }
}

// FUNKTION DER LUKKER VINDUET IGEN NÅR MAN SURFER VÆK
function closeWin() {
  if (self==top) {
    if (self.win&&!self.win.closed) {
    self.win.close();
    }
  }
}

Den første funktion kalder du så der hvor billederne skal åbnes, f.eks. i et link:

<a href="java script:openWin('ditbillede.jpg');void(0);">Se her</a>

Og lukke funktionen lægger du i <body> tag'et i det dokument hvorfra vinduet åbnes. Sådan:

<body ununload="closeWin();">
Avatar billede mik789 Nybegynder
11. september 2002 - 06:34 #8
"ununload" skal være: onunload, sorry
Avatar billede mik789 Nybegynder
11. september 2002 - 06:40 #9
Det med at vinduet er "dependent": I NS6 kan et nyt vindue være dependent, og det vil sige at det ikke minimeres selv om du klikker uden for billedet. Nå så man klikker på et andet billedlink, opdateres indholdet af vinduet bare. Det kan IE ikke klare med et alm nyt vindue. "IE" forudsætter at du har en browserbestemmelse et sted forinden, f.eks.: var IE = (document.all)?true:false;
Avatar billede eazye Nybegynder
11. september 2002 - 07:28 #10
<script type="text/javascript">
    function window_new(wPath, wHeight, wWidth, wStatus, wScroll) {
        var wTop, wLeft
        wLeft = (screen.width/2) - (wWidth/2)
        wTop = (screen.height/2) - (wHeight/2)
        window.open(wPath,'bboying','height=' + wHeight + ',width=' + wWidth + ', top=' + wTop + ', left=' + wLeft + ', status=' + wStatus + ', scrollbars=' + wScroll + '')
    }
</script>

i <head> og for at åbne vindue bruger jeg:

<a href=\"#\" onClick=\"window_new('side.htm',1,1,0,0)\">

mik789 » Billederne åbner i et nyt vindue.
Avatar billede mik789 Nybegynder
11. september 2002 - 09:45 #11
ok. hvis du kan nøjes med at vinduet lukker ved unload, kan du jo tilpasse den anden funktion af mine ovenfor. Dit vindue hedder "bboying" og hvis du sætter det ind i stedet for "win" i mit eksempel, burde det vel virke. Måske skal du omformulere din window.open sætning så navnet sættes som variabel, altså:
bboying = window.open(wPath,'bboying',[osv.]);
Avatar billede eazye Nybegynder
15. september 2002 - 20:05 #12
jeg lukker.. var ingen tilfredsstillende svar! sorry!
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