[JavaScript] Controleren of een window met een naam bestaat

Pagina: 1
Acties:

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Hallo,

Ik gebruik het volgende script om een venster te openen. Wanneer het venster al open is, krijgt het venster slechts de focus.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript"><!--

var venster = null;

function openVenster() {
  if(!venster || venster.closed) {
    venster = window.open('pagina.html', 'pagina', 'location=1');
    if(!venster)
      alert("Je browser of een ander programma blokkeert pop-ups.");
  }
  venster.focus();
}

//--></script>


Dit werkt prima. Wanneer ik echter de opener-pagina vernieuw (waar dit script op staat), verwijst de variabele venster natuurlijk niet meer naar het venster dat geopend is. Wanneer nu openVenster() weer wordt uitgevoerd, wordt window.open opnieuw uitgevoerd, waardoor het venster met de naam pagina wordt herladen. Ik wil graag dat het venster met de naam pagina ook op dit moment slechts de focus krijgt, en niet wordt herladen.

Het lijkt me dat ik dit kan doen door op één of andere manier te controleren of er al een venster bestaat met de naam pagina. Is dit mogelijk en zo ja, hoe? Of is er een andere manier om te voorkomen dat het venster wordt herladen?

Alvast bedankt.

[ Voor 31% gewijzigd door Jeeeroen op 20-04-2006 15:35 ]


  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

Dat kan niet.
Als je de pagina vernieuwd waaruit het venster werd geopend ben je het window object kwijt.
De enige manier om dit op te lossen is door met een frameset te werken, waarbij je het venster vanuit een hidden frame opent. Doordat de hidden frame niet wordt ververst blijft het window object benaderbaar.
Niet zo'n nette oplossing maar het werkt wel. :)
Hetzelfde principe heb ik een keer toegepast voor een webbased messenger..

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Bedankt voor je antwoord. Ik bedacht me net, zou het misschien mogelijk zijn om het herladen in het venster af te vangen met window.onunload?

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Jeeeroen schreef op donderdag 20 april 2006 @ 16:05:
Bedankt voor je antwoord. Ik bedacht me net, zou het misschien mogelijk zijn om het herladen in het venster af te vangen met window.onunload?
Dat werkt in ieder geval niet.

Ik heb wel een andere oplossing gevonden. Ik heb dit nu in pagina.html geplaatst:
code:
1
2
3
4
5
function vensterOpener() {
  if(!window.opener.venster)
    window.opener.venster = window;
}
window.setInterval(vensterOpener, 100);


Vind je dat dit mag? :)

[ Voor 3% gewijzigd door Jeeeroen op 20-04-2006 16:21 ]