Toon posts:

[JavaScript] Ander venster laten refreshen

Pagina: 1
Acties:
  • 53 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi!

Ik zit met een probleempje ivm. javascript, en ik hoop dat jullie mij kunnen helpen. Ik zal even de situatie situeren:

Momenteel ben ik bezig met het maken van een inlogsysteem op mijn website. Alles lukt hoor, maar 1 ding wil ik beter kunnen: Als de gebruiker op "Login" klikt, wordt er via javascript een klein venstertje geopend, waar hij zijn gegevens (username + password) moet invullen. Misschien even de code:
code:
1
2
3
4
5
function venster()
{
window.open("index.php?action=login","login","toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=200,height=200")
}

Ok, dat werkt dus allemaal. Nu wil ik, dat als de user op submit geklikt heeft, dat automatisch de hoofdpagina gerefresht wordt. Maar hoe doe ik dat? Hoe kan ik vanuit "dat kleine venstertje" mijn "hoofdvenster" laten refreshen?

Bedankt!

PS: Als het niet helemaal duidelijk is, vergelijk het met het inloggen op tweakers.net, daar wordt ook een venstertje geopend!

Verwijderd

Doe een
parent.window.opener.parent.location.reload();
in je pop-up.

Arjen

  • r.e.n
  • Registratie: Juni 2001
  • Niet online
hi,

parent.location.href = "pagina.php";

Verwijderd

Topicstarter
Ik ga het NU uittesten! :)

Alvast heel erg bedankt

Verwijderd

Topicstarter
Haaai, ik heb het even uitgetest in 2 kleine files, maar hij doet het nog niet? Ik zal even de code geven:

-- test.html --
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>

<script type="text/javascript">
function venster()
{
window.open("test2.html","testeeee")
}
</script>

</head>

<body>

<span onclick="venster()">OPEN</span>

</body>

</html>

-- test2.html--
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>

<script type="text/javascript">
function refresh()
{
parent.location.href = "dummy.php";
}
</script>

</head>

<body>

<span onclick="refresh()">REFRESH ANDER VENSTER</span>

</body>

</html>

Ik heb even dummy.php gekozen als "refresh" page, omdat die toch niet bestaat, zodat hij dus een error moet geven in het window van test.html. Bij mij geeft hij het echter in de test2.html? :(

Idee? Bedankt!

[EDIT] En van de oplossing van arjenvm weet ik dus niet of hij werkt of niet werkt, want op zo'n gewone tekst pagina zie je dat dus niet refreshen. Maar volgens mij refresht hij ook de test2.html.

Verwijderd

Maak van test2:

<html>
<head>
<script type="text/javascript">
function refresh()
{
parent.window.opener.parent.location = "dummy.php";
}
</script>

</head>

<body>

<span onclick="refresh()">REFRESH ANDER VENSTER</span>

</body>

</html>

en hij doet het (bij mij in ieder geval)

A.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 16:53

RM-rf

1 2 3 4 5 7 6 8 9

maak dan van
code:
1
parent.window.opener.location = "dummy.php";

gewoon
code:
1
2
3
top.opener.location = "dummy.php";
of zelfs 
opener.location

(top is enkel noodzakelijk wanneer je het script aanroept vanuit een frameset in de geopende window)

het opener-object is onderdeel van het window-object (en deze hoef je niet met window. aan te roepen, anders moets je gewone variabelen ook opeens met window.variabele aanroepen)
het openenr object bevat een directe referentie naar het window -object van waaruit de 'eigen' window werd geopend, als deze afgesloten is of de window werd in zijn geheel niet door een window.open() geopend retourneerd opener null

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
OK, heel erg bedankt! Het werkt zoals ik het wil!

En bedankt voor de interessante uitleg! Als je nog links hebt over javascript syntax, je mag ze altijd geven. Normaal gezien haal ik het nodige op www.w3schools.com , maar ik vind de uitleg over javascript daar ondermaats :)

Nogmaals: cheers!

Verwijderd

Topicstarter
Even deze oude topic erbij halen, ipv. een nieuwe te starten.

Waarom werkt dit wel, maar neemt hij de breedte + hoogte niet over?
code:
1
2
3
4
5
6
<script type="text/javascript">
function venster(pagina, naam, breedte, hoogte)
{
window.open(pagina,naam,"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=breedte,height=hoogte")
}
</script>

en in mijn html:
code:
1
<span onclick="venster('kalender.php?maand=<?php echo $maand; ?>&jaar=<?php echo $jaar; ?>','Calender', 700, 300)">OPEN</span>

Verwijderd

Topicstarter
^^ niemand? Hij maakt een nieuw venster aan met de pagina die ik wil, maar hij wil de breedte/hoogte maar niet overnemen :( Niemand idee? :o

:(

Verwijderd

nog even een vraagje...

als ik nou vanuit dat nieuwe window een nieuwe pagina wil laten openen in het oude venster in een bepaald frame? hoe moet dat dan... en dan moet die nieuwe window ook sluiten zeg maar...

iemand een idee? ik zou niet weten hoe dat moest..

Verwijderd

uit mn hoofd:

window.opener.parent.[naamvhframe].location = "bbbvbvb.html"
window.close()

Verwijderd

Sorry voor het omhoogschoppen van dit oude topic maar sommige topics kon ik niet openen en de rest van opgezochte pagina's bieden ook geen uikomst.

Hoe zorg ik ervoor dat het 1e venster (parentwindow) automatisch word ververst met een vooraf bepaalde pagina? Dus zonder eerst op een link te klikken?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Door het onload event te gebruiken :?

<body onload=''>

of in JavaScript:

window.onload = functie

:?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 17:17

crisp

Devver

Pixelated

ik zie toch liever een nieuw topic, want je zal toch altijd zien dat mensen gaan reageren op de oude topicstart. Echter is dit wel een basisvraag die je door even zoeken cq. proberen zelf zou moeten hebben kunnen beantwoorden :)

Intentionally left blank

Pagina: 1

Dit topic is gesloten.