refreshen pagina in bepaald frame

  • Onderwerp starter Onderwerp starter flbos
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

flbos

Gebruiker
Lid geworden
5 feb 2004
Berichten
267
Onderstaande code gebruik ik om een pagina in een bepaald frame te herladen:

window.parent.navFrame.document.reload();

Ik begreep dat het onderstaande ook kan:

window.navFrame.location='_self';

Het werkt echter allebei niet. Ik denk dat het er mee te maken heeft dat ik de code draai vanuit een pagina die in een Iframe wordt geladen. Dit Iframe bevindt zich dan weer in de pagina die in 'navFrame' geladen is.

Hoe kan ik in dit geval de refresh van het frame 'navFrame' wel uitvoeren?
 
parent.location.reload();

het navFrame is de parent van het iframe en daarmee doe je location.reload();


Vr.Gr. Egel.
 
Bedankt voor deze oplossing, hier was ik al enige tijd mee aan het prutsen!

Nu wil ik graag ook nog kunnen refreshen vanuit een frame (mainFrame) dat zich op hetzelfde niveau als navFrame bevindt. Het is in dit geval dus geen Iframe binnen navFrame, maar een frame dat zich net zoals navFrame in de framesets van de hoofdpagina bevindt.

Het lukt me niet met:
window.parent.navFrame.document.reload();
window.navFrame.location='_self';
(dacht dat deze misschien juist nu wel zouden werken)
of
parent.navFrame.location.reload();
of
navFrame.location.reload();

Ik heb het idee dat het misschien te maken heeft met de geneste frameset die ik gebruik, daarom hieronder de frameset van de index pagina:

<frameset rows="65,28,*" cols="*" framespacing="0" frameborder="no">
<frame src="Top.php" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" />
<frame src="navigatie.php" name="navFrame" noresize="noresize" id="navFrame" />
<frameset rows="*" cols="130,*" framespacing="0" frameborder="no">
<frame src="Ads.php" name="leftFrame" id="leftFrame" scrolling="No" noresize="noresize"/>
<frame src="Home.php" name="mainFrame" id="mainFrame" />
</frameset>
</frameset>

Heb je hier toevallig ook nog een oplossing voor? Ik zou er wederom veel baat bij hebben, want ik dacht dat dit me nu wel zou lukken, maar mooi niet dus!
 
PHP:
<frameset rows="65,28,*" border="0" framespacing="0" frameborder="no">
 <frame src="Top.php" name="topFrame" scrolling="no" noresize>
 <frame src="navigatie.php" name="navFrame" scrolling="no" noresize>
 <frameset cols="130,*" border="0" framespacing="0" frameborder="no">
  <frame src="Ads.php" name="leftFrame" scrolling="no" noresize>
  <frame src="Home.php" name="mainFrame" scrolling="auto" noresize>
 </frameset>
</frameset>
+
parent.navFrame.document.location.reload();

Misschien lukt het hiermee, ik heb de id's weggelaten.
(navFrame is scrolling="no", mainFrame is scrolling="auto" en noresize hoort zonder ="...")

location is officieel eigenschap van document dus dat heb ik er nog extra voorgezet, maar zonder werkt het ook al wel denk ik.


Gr. Egel.
 
Hartelijk bedankt voor het aanpassen van de frameset, het werkt nu eindelijk!

Nog één vraagje erover: ik wil na het refreshen met

parent.navFrame.document.location.reload();

wil ik graag naar een andere pagina gaan. Deze pagina wordt in het mainFrame geladen. Ik doe dit momenteel met de header functie van php, maar als ik die aanroep na het refreshen met JS dan wordt er dus niet meer gerefreshed.

Dit heeft er volgens mij mee te maken dat bij gebruik van de header functie alle andere code die nog draait stopgezet wordt en niet meer uitgevoerd wordt. Dan wordt
parent.navFrame.document.location.reload();
dus niet meer uitgevoerd. Is hier een oplossing voor te verzinnen?

Kan ik bijvoorbeeld op één of andere manier kijken of de reload al heeft plaatsgevonden en daarna pas de header functie geruiken?
 
parent.navFrame.document.location.reload();
+
this.document.location.href='nieuwepagina.html';
of
this.document.location.replace('nieuwepagina.html');

Met de href kun je via de vorige knop in je browser terug (als js history), met de replace niet. this. is voor de duidelijkheid.

Hoe / of het met php zou kunnen weet ik niet, misschien een return true; ergens toevoegen.


Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan