/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Lukning af popup vindue
Fra : Puk


Dato : 10-05-01 16:32

Hej alle sammen

Jeg er pt igang med at kode et større system hvor vi blandt andet
benytter JSP og en smule javascript.

Vi er rendt ind i det problem, at vi har problemer med at få
lukket et popup vindue under nogle særlige omstændigheder.
Systemet skal opføre sig modalt, selvom det ikke har været muligt
for os at kode det helt sådan i JSP.
Når en bruger klikker sig ind på et menupunkt og udfører nogle
handlinger i et popup vindue kan det hænde at brugere
glemmer/undlader at lukke popup vinduet inden han klikker på et
andet menupunkt i grundvinduet. I den forbindelse sørger vi for
at lave endSession på de Java Enterprise Beans som har været
aktive i sessionen og nu ikke skal bruges, men vi skal også have
lukket popup vinduet.

Problemet er at når der klikkes på et nyt menupunkt, så vil
grundvinduet reloade. Det lader til at dette betyder, at
grundvinduet ikke længere "kender"/"husker" popup vinduet og
derfor ikke kan udføre close() funktionen på det.

Vores første problem bestod i, at vi ikke på forhånd kunne vide
om popup vinduet overhovedet havde været åbent. Derfor indsatte
vi kode i popup vinduet, der hver gang det åbnes tilføjer en
attribut til sessions objektet som vi blot kalder "Popup" og som
bliver sat til værdien "open". Hvis popupvinduet lukkes som det
burde fjernes attributten fra sessionen igen. Således blev det
muligt for os at lade grundvinduet teste på sessionsobjektet om
der fandtes en attribut med navnet "Popup". Gør der det, skal
grundvinduet sørge for at lukke popup vinduet.

Et eksempel kunne være:

<body onload=<%if(session.getAttribute("Popup") != null) {%>
popupWin.close();
<%}%>"startMovement('start','32')"
background="/ill/bagground/bgs_002.gif" link="Black"
bottommargin="0" topmargin=0 leftmargin=0 rightmargin="0"
bgcolor="White">

"popupWin" er så navnet på popupvinduet. Men det virker altså
ikke. Jo valideringen virker fint, men popupWin.close() bliver
ikke udført. Vi mener selv at dette næsten må skyldes, at
grundvinduet nok ikke aner hvad popupWin er, idet det jo bliver
reloaded. Desværre er det ikke muligt blot at lade popup vinduet
ligge som minimieret. For hvis brugeren skulle vende tilbage til
vinduet, vil alle bønner som vinduet bruger være fjernet fra
sessionen og et forsøg på at bruge popupvinduet vil resultere i
en systemfejl. Det er heller ikke muligt blot at undlade at
fjerne bønner fra sessionen da dette jo til sidst vil resultere i
performance problemer på serveren, idet der vil kunne være et
voldsomt stort antal instanser af diverse bønner.

Er der nogen som har ideer til, hvordan dette kan løses?

Tusinde hilsner
Puk



 
 
Lars Hoffmann (10-05-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 10-05-01 18:23

Puk wrote:
>
> Når en bruger klikker sig ind på et menupunkt og udfører nogle
> handlinger i et popup vindue kan det hænde at brugere
> glemmer/undlader at lukke popup vinduet inden han klikker på et
> andet menupunkt i grundvinduet.


Altså vil i gerne lukke popup vinduet når brugeren klikker på et eller
andet i hovedvinduet, hvorfor så ikke bare bruge

<body onblur="window.close()>

i popupvinduet?


--
/Lars

HTML software: <http://go.to/HTMLEasyColors>
Brug venligst Re: og ikke Sv: ved svar, da beskeder
der begynder med Sv: bliver slettet fra mange servere

Puk (11-05-2001)
Kommentar
Fra : Puk


Dato : 11-05-01 07:45

"Lars Hoffmann" <lars@hoffmann.ac> skrev i en meddelelse
news:3AFACE68.F0409B8C@hoffmann.ac...

> Altså vil i gerne lukke popup vinduet når brugeren klikker på
et eller
> andet i hovedvinduet, hvorfor så ikke bare bruge
>
> <body onblur="window.close()>
>
> i popupvinduet?

Det er en sandhed med modifikationer. Det er nemlig ikke
sikkert, at brugeren kommer til at bruge popup vinduet igen i et
andet menupunkt. De fleste steder i systemet er der et use-case
forløb, hvor brugeren skal eller kan komme igennem 1-2
grundvinduer før han eventuelt kan åbne et popup vindue. Nogle
steder vil han slet ikke skulle bruge popup vinduet igen, og det
er desværre ikke muligt at forudse, om han vil komme til det
eller ej.
Men tusind tak for tippet. Javascript er ikke rigtig nogen af
projektdeltagernes stærke side.

Tusinde hilsner
Puk




Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste