Refreshen van top frame
Ik zit met een kleine vraag waar ik via google geen antwoord op kan vinden.
Echter weer ik ook niet of het mogelijk is, maar ik heb in mijn website ergens
een iframe staan van 1px bij 1px met een transparente achtergrond.
In dit iframe word om de 30 seconden gecheckt of de ingelogte gebruiker een alert
heeft ontvangen. Dit gaat via een meta die om de 30 seconden refresht.
Als het script ziet dat de ingelogte gebruiker een alert heeft, dan moet hij
de website, dus het top frame om maar even te zeggen, refreshen.
Ik heb dit al geprobeerd door simpel
te gebruiken, maar dit heeft geen effect. Ik maak weinig gebruik van meta,
dus zal me gods niet weten hoe ik dit kan oplossen. Hopelijk een van jullie wel.
Groetjes,
Mik
Werkt header('..url..') niet gewoon?
Weet ik niet, ik denk dat dat alleen het iframe refresht.. maar ik zal et proberen
Ik zou het gebruik van een iframe direct afraden. Maar je hebt javascript nodig om een ander frame te herladen.
dan kunnen mensen stoppen met standaard te moeten melden dat ze al eens op Google hebben gezocht.
Ik zal eens zien wat ik kan doen, voor je. Momentje.
Kris Peeters op 09/02/2011 11:12:21:
Mochten mensen eens stoppen met reacties als "Zoek eens op Google", zonder verder een link of niets ...
dan kunnen mensen stoppen met standaard te moeten melden dat ze al eens op Google hebben gezocht.
Ik zal eens zien wat ik kan doen, voor je. Momentje.
dan kunnen mensen stoppen met standaard te moeten melden dat ze al eens op Google hebben gezocht.
Ik zal eens zien wat ik kan doen, voor je. Momentje.
Eh, niemand zegt dat hier en het is altijd goed om aan te geven wat je al gedaan hebt om het probleem op te lossen. Vereiste volgens mij zelfs. Irrelevant om dit te vermelden dus.
OT: dit is wel een zeer lelijke oplossing voor je situatie. Een transparante 1x1 iframe die refreshed. Is het nu zo belangrijk om de refresh functionaliteit ook te kunnen bieden aan mensen die javascript uit hebben staan? Tenzij het je main functionaliteit is lijkt het mij een beetje ver gaan. Anyhoe, volgens mij heb je echt javascript nodig om dit werkend te krijgen. En als je dan toch al JS gebruikt kan je net zo goed een timer zetten en om de tijd een ajax request doen.
Edit: dan kan je ook zorgen dat je pagina niet gerefreshed wordt maar dat je op de pagina de wijzigingen maakt.
Gewijzigd op 09/02/2011 11:28:27 door The Force
Volgens mij is het inderdaad niet mogelijk om zonder js zulke dingen te doen. Ik snap de wens om een iframe met een meta-refresh te gebruiken maar ik denk toch dat je beter naar javascript kan gaan. Krijg je mooiere en, vooral, meer mogelijkheden.
- Zie dat de iframe telkens de zelfde id heeft als zijn name
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
$top = 'top.php';
$content = 'content.php';
$body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//NL" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link rel="shortcut icon" type="image/gif" href="favicon.gif"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> IFRAME refreshen </title>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script>
function refresh_iframe (name) {
var f = document.getElementById(name);
f.contentWindow.location.reload(true);
}
</script>
</head>
<body>
<iframe id="top" name="top" src="'. $top .'"></iframe>
<iframe id="content" name="content" src="'. $content .'"></iframe>
<input type="button" class="refresh_button" value="Refresh" onclick="refresh_iframe(\'top\')"/>
</body>
</html>';
echo $body;
?>
$top = 'top.php';
$content = 'content.php';
$body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//NL" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link rel="shortcut icon" type="image/gif" href="favicon.gif"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> IFRAME refreshen </title>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script>
function refresh_iframe (name) {
var f = document.getElementById(name);
f.contentWindow.location.reload(true);
}
</script>
</head>
<body>
<iframe id="top" name="top" src="'. $top .'"></iframe>
<iframe id="content" name="content" src="'. $content .'"></iframe>
<input type="button" class="refresh_button" value="Refresh" onclick="refresh_iframe(\'top\')"/>
</body>
</html>';
echo $body;
?>
Gewijzigd op 09/02/2011 13:22:47 door Kris Peeters
@Kris waarom plaats je nu alles in een iframe? Dat maakt het alleen nog maar slechter.
Een systeem vinden waardoor je een iframe kan refreshen.
Bij deze dus een voorbeeld van een pagina met twee iframes, waarbij je ziet dat de ene iframe wordt ververst; de andere niet.
Vraag -> antwoord
Tja, en dan zien we wel wat daar precies mee moet gebeuren en of hiermee kan verder gewerkt worden
Gewijzigd op 09/02/2011 14:11:05 door Kris Peeters
Zijn vraag geeft mij het idee dat hij de content in de gewone pagina heeft staan en niet ook in een iframe.
Het gaat om het principe
Ik wil inderdaad niet 2 iframes gebruiken..
Mijn website staat dus niet in een iframe, maar ik heb in mijn website een klein
iframepje die om de 30 seconden refresht en dan checkt hij telkens weer doormiddel van php of de ingelogte gebruiker een alert heeft ontvangen. Als die gene dat heeft, dan moet de website (waar dat kleine iframpje dus in zit) refreshen, zodat het lid het alert bericht meteen ziet. Ik weet niet of je je content een id kan geven.. Lijkt me niet, maar goed dat zou alles wel oplossen.
Toevoeging op 09/02/2011 15:31:17:
EDIT:
Of is hier misschien een leuk AJAX / jquery script voor?
Kijk eens omhoog.
Kijk eens omlaag.. Zoals ik al zeg wil ik niet mn hele website in iframes gaan doen
Kris Peeters oplossing kan gewoon aangepast worden, dat kan je zo uitvinden met Firebug o.i.d.