Toon posts:

[JS] Window.close na refresh wil niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

In mijn webpagina laat ik op een pagina (orderdetail.cfm (ja coldfusion :o :P)
een pop-up openen om een bepaalde sessie te killen. Als deze sessie gekilled is moet het bovenste frame ververst worden.
Dat gaat nog goed.

Maar nu wil ik dat dit pop-upje zichzelf weer sluit nadat hij deze sessie heeft gesloten. In deze pop-up heb ik dus de volgende regel staan:
code:
1
OnLoad="javascript:window.parent.topFrame.location.reload();window.close();"


Nu wordt de sessie wel gesloten, de banner wel ververst, maar blijft de pop-up open staan! Terwijl als ik alles voor de window.close weghaal, het bovenste frame weer niet wordt ververst 8)7


Kan iemand mij zeggen wat ik fout doe?

Alvast bedankt!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:43

crisp

Devver

Pixelated

weet je zeker dat je topFrame wel refreshed? vanuit een popup moet je namelijk de opener aanspreken.
Verder hoeft (hoort) javascript: ook niet in een eventhandler

Intentionally left blank


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
code:
1
2
opener.topFrame.location.reload();
self.close();


Dat zou gewoon moeten werken lijkt me. Wat er nu gebreurt is dat er een javascript error ontstaat in de popup bij het uitvoeren van de eerste statement. De tweede wordt daardoor nooit uitgevoerd.

Noushka's Magnificent Dream | Unity


  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 11:56

DizzyWeb

Ondertiteld

code:
1
OnLoad="window.opener.topFrame.location.reload();window.close();"

Zou logischer zijn IMHO?

Verwijderd

Topicstarter
Ja, ik weet zeker dat ie refreshed, want de sessie wordt weergegeven in de topFrame, en na de OnUnload niet meer.

Nou ziet mijn OnUnload in de orderdetail.cfm er als volgt uit:
code:
1
onunload="MM_openBrWindow('act_kill_banner_session.cfm','SWITCH','width=10,height=10');window.parent.topFrame.location.reload();">


Dus kan het ook dat ie na de onunload van orderdetail.cfm de refresh uitvoert, echter dan zou het weghalen van de refresh in de pop-up er dus niet toe doen, toch? :?

[ Voor 14% gewijzigd door Verwijderd op 16-01-2004 11:31 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:43

crisp

Devver

Pixelated

je popup killt de session dus, en niet de reload van je topFrame. Ook hier geldt trouwens: liever geen javascript: in een eventhandler, en lees bovenstaande reacties nog eens goed door - je krijgt wel degelijk een error op je reload code

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 16 januari 2004 @ 11:33:
je popup killt de session dus, en niet de reload van je topFrame. Ook hier geldt trouwens: liever geen javascript: in een eventhandler, en lees bovenstaande reacties nog eens goed door - je krijgt wel degelijk een error op je reload code
Was de "javascript:" al overal aan het weghalen :D
Ik ga nog eens aan de slag met bovenstaande...

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Verwijderd schreef op 16 januari 2004 @ 11:30:
code:
1
window.parent.topFrame.location.reload()
Die window.parent.topFrame verwijst toch echt niet naar de plek waar jij verwacht dat ie heen verwijst. Ten eerste is de parant van de popup waarschijnlijk gewoon zichzelf, ten tweede heeft de popup waarschijnlijk (hoop het niet) geen frames, dus kan er ook niet naar verwezen worden.

Als je die regel weghaalt, doet ie het waarschijnlijk wel. De frame wordt denk ik gewoon refreshed door de functie die je daarvoor aanroept. Maar dit had je toch zelf ook wel even kunnen proberen?

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Michali schreef op 16 januari 2004 @ 11:37:
[...]
Als je die regel weghaalt, doet ie het waarschijnlijk wel. De frame wordt denk ik gewoon refreshed door de functie die je daarvoor aanroept. Maar dit had je toch zelf ook wel even kunnen proberen?
Verwijderd schreef op 16 januari 2004 @ 11:23:
Nu wordt de sessie wel gesloten, de banner wel ververst, maar blijft de pop-up open staan! Terwijl als ik alles voor de window.close weghaal, het bovenste frame weer niet wordt ververst 8)7
Ik ben geen echte JS'er, maar ik ben druk aan het stoeien met jullie info!

Verwijderd

Topicstarter
Okay,
ik moet mezelf even corrigeren.
(voor de verandering!?)


Als ik de de pop-up oproep wordt de sessie wel degelijk gekilld.
Er komt inderdaad een fout melding op de regel:
code:
1
window.opener.topFrame.location.reload();

(is not an object or null), daardoor blijft de pop-up openstaan.
De refresh die er nu gebeurt is de refresh uit de OnUnload-handler uit de pagina die ik verlaat. Doordat de pop-up openstaat, voert deze de refresh nogmaals uit (denk ik?).

Haal ik die regel weg, wordt echter de topFrame niet ververst, hetgeen nodig is om te laten zien aan de gebruiker dat de sessie gekilled is.
Hoe kan ik dan de popup wel de topFrame laten verversen?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:43

crisp

Devver

Pixelated

Verwijderd schreef op 16 januari 2004 @ 11:56:
[...]
Hoe kan ik dan de popup wel de topFrame laten verversen?
Ik heb de juiste code al 2x gezien in dit topic ;)

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 16 januari 2004 @ 11:59:
[...]

Ik heb de juiste code al 2x gezien in dit topic ;)
Toch geeft ie dezelfde foutmelding op die code....
hierbij dus maar de source van de pop-up, misschien doe ik iets echt heeeeeel stom :)

code:
1
2
3
4
5
6
7
8
9
<cfinclude template="../Application_Files/App_globals.cfm">
<cfset StructDelete(SESSION, "banner")>
<html>
<head>
<title>DROP SESS!</title>
</head>
<body OnLoad="opener.topFrame.location.reload();self.close();">
</body>
</html>

Verwijderd

Topicstarter
*schopje*

het werkt nog niet, niemand een idee??

Verwijderd

Topicstarter
Verwijderd schreef op 20 januari 2004 @ 09:21:
*schopje*

het werkt nog niet, niemand een idee??
Ik neem dat schopje terug!
Ik heb hem zelf al te pakken!! (tis een wonder!:D)

alsvolgt, na veel puzzelen:
code:
1
2
3
4
<script language="JavaScript">
top.opener.parent.frames['topFrame'].location.reload();
window.close();
</script>
Pagina: 1