Toon posts:

[JavaScript] Controleren of een window al geopend is

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil controleren of een window al geopend is met javascript. dus windows.open(url,'newwindow') al gedaan is.

nu had ik:

if(newwindow.closed())
{
// is gesloten.... dus ook ooit geopend... (volgens de reference van javascript)
}

maar het probleem is dat als het window nog niet geopend is, er dus een foutmelding komt: newwindow niet gedefinieerd.

Is er dus een manier om te kijken of dat newwindow bestaat??!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
if (newwindow)

dus

if ((!newwindow) || (newwindow.closed()))

[ Voor 65% gewijzigd door r0bert op 22-11-2002 16:52 ]


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

closed is een property en geen method, dus:
JavaScript:
1
2
3
4
5
6
7
if (newwindow)
{
  if (newwindow.closed)
  {
    // do your thing
  }
}

Today's subliminal thought is:


  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 19-08 15:22

Willem2

Ω is futile

Annie schreef op 22 november 2002 @ 20:57:
closed is een property en geen method, dus:
JavaScript:
1
2
3
4
5
6
7
if (newwindow)
{
  if (newwindow.closed)
  {
    // do your thing
  }
}
en toch geeft Mozilla hier een JS error op... :)

en nee, ik houd niet van voetbal... :)


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Als newwindow nog helemaal niet bestaat krijg je een error ja; dat zou je in een try-catch constructie kunnen testen:
JavaScript:
1
2
3
4
5
try {
  if (newwindow) alert('ja, die bestaat!');
} catch(error) {
  alert('nee, die ken ik niet!');
}

Wat ik meestal doe is newwindow als global definieren:
JavaScript:
1
2
3
4
5
6
7
var newwindow = null;

function openWin() {

  newwindow = window.open('blaat.html', 'popupje', '');

}

en dan in de popup:
HTML:
1
<body onUnload="opener.newwindow=null">

nu is een check op newwindow al voldoende... :)

Even een aanvulling: als de gebruiker F5 gebruikt in de popup dan breekt hij daarmee de connectie met het main-window; echter kent de popup zijn opener dan nog wel, dus ergens in de head een:
JavaScript:
1
opener.newwindow = self;

is genoeg om de opener-child relatie weer goed te maken :)

[ Voor 27% gewijzigd door crisp op 23-11-2002 01:41 ]

Intentionally left blank