[iframe] reload() ververst ook parent

Pagina: 1
Acties:

  • teacher
  • Registratie: September 2001
  • Laatst online: 00:13

teacher

Frontpage Admin / Global Moderator

Dysgaf!

Topicstarter
LS.

Ik heb een pagina met een iframe erin.
Die moet ververst worden.
dus:
code:
1
2
<iframe name="shout" style="blablabla;" src="viewshoutbox.php" 
 onload="setTimeout('this.location.reload()',1000)"></iframe>


so far so good, totdat de pagina zelf in een frameset terechtkomt.
Dan ververst het parent frame mee en dat is niet de bedoeling.

Ik heb al geprobeerd om:
- het iframe via de top.framenaam.iframenaam aan te spreken, //foutmelding
- een reload() in viewshoutbox.php te stoppen //ververst alsnog de hele pagina.

De rest van de pagina is een phpbb forum, en ik kan dus niet een script in het template neerzetten omdat je anders foutmeldingen krijgt zodra je niet meer bij de forum index bent.

Wie geeft mij een slinger in de goede richting?

[ Voor 6% gewijzigd door teacher op 07-01-2003 01:32 ]

Wise enough to play the fool


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 21:05
Zeker weten dat een location.reload(); in de viewshoutbox.php niet werkt?

Motor (of auto) onderhoud bijhouden


  • teacher
  • Registratie: September 2001
  • Laatst online: 00:13

teacher

Frontpage Admin / Global Moderator

Dysgaf!

Topicstarter
Ja, die ververst het parent frame ook mee...

Wise enough to play the fool


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Dat komt omdat de timeout niet meer in de context van 't iframe wordt aangeroepen, wanneer de tijd verstreken is. Dan is this niet meer 't iframe, maar default het huidige window (het object waarin de functie aangesproken wordt).

Je zal dus 't frame een id moeten geven en met document.getElementById 't element aanspreken

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

window.frames['shout'].location.reload() zou toch moeten werken?
Overigens, werken onload event handlers niet in ie5 als je ze in iframe en frame-tags gooit (en volgens mij ook niet in Opera7)

  • teacher
  • Registratie: September 2001
  • Laatst online: 00:13

teacher

Frontpage Admin / Global Moderator

Dysgaf!

Topicstarter
drm schreef op 07 January 2003 @ 09:20:
Dat komt omdat de timeout niet meer in de context van 't iframe wordt aangeroepen, wanneer de tijd verstreken is. Dan is this niet meer 't iframe, maar default het huidige window (het object waarin de functie aangesproken wordt).

Je zal dus 't frame een id moeten geven en met document.getElementById 't element aanspreken
Hoe kan de timeout dan "ineens" buiten het iframe vallen?
en als ik dit doe ververst er ook niets...
code:
1
onload="setTimeout('document.getElementById('shout').location.reload()',1000)">
Verwijderd schreef op 07 January 2003 @ 11:18:
window.frames['shout'].location.reload() zou toch moeten werken?
Overigens, werken onload event handlers niet in ie5 als je ze in iframe en frame-tags gooit (en volgens mij ook niet in Opera7)
Dan ververst er helemaal niets :?

Over die onload in een iframe:
code:
1
<iframe src="http://www.yahoo.com" onload="alert()"></iframe>

[ Voor 45% gewijzigd door teacher op 07-01-2003 16:48 ]

Wise enough to play the fool


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

ik denk niet dat je events aan de iframe-tag kunt hangen.
Ik wordt gesterkt in die mening als ik in Homesite de tag-insight voor een iframe raadpleeg; geen opties voor events...

Ik denk dat je het anders op moet gaan lossen.

Ben nog ff aan het surfen naar bevestiging, maar wat ik tot nu toe tegenkom wijst er op dat ik gelijk heb :P

op deze page staat bijna aan het eind een tabelletje met eventhandlers en op welke elementen ze betrekking kunnen hebben.

onload: body, frameset.

geen iframe...een iframe kan alleen een onclick-event meekrijgen, da's niet veel :/

[ Voor 49% gewijzigd door Hangloozz op 07-01-2003 17:24 ]

www.jurgroessen.nl


Verwijderd

Het lijkt net alsof je wil zeggen dat het wel werkt voor IE5, maar ik heb het net weer getest: het werkt niet bij mij. Ook niet bij Opera 7 trouwens.
Ik had laatst problemen met onload aan frames, dat het niet werkte in IE5. Zoekend bij Handleiding HTML zag ik dan ook dat je officieel gezien geen onload event handler mag hangen aan iframe of frame..
Het werkt dus wel in IE6 en Mozilla, nog even voor de duidelijkheid...

Anders zet gewoon een herhaalde timeout in het hoofddocument die het iframe reload.

  • teacher
  • Registratie: September 2001
  • Laatst online: 00:13

teacher

Frontpage Admin / Global Moderator

Dysgaf!

Topicstarter
Ja, maar dat is een phpbb body template, dat zou betekenen dat je scriptfouten krijgt zodra je niet meer op de index bent (omdat daar geen shoutbox staat).

Is er niet een lumineus/ranzig oplossinkje te bedenken?

Wise enough to play the fool


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

wat ik dus geheel niet begrijp is dat een reload _IN_ de body-tag van het bestand viewshoutbox.php niet werkt...da's toch een normale gang van zaken :?
Mag ik vragen of je het wel op de goede wijze doet?

www.jurgroessen.nl


Verwijderd

Je zou een check kunnen inbouwen in het hoofdocument:
function check(){
if (window.frames['shout'])window.frames['shout'].location.reload();
}
rel=setInterval('check()',1000);
Inderdaad een ranzig oplossinkje.
Pagina: 1