web-dev-qa-db-fra.com

Un Iframe que j'ai besoin de rafraîchir toutes les 30 secondes (mais pas toute la page)

J'ai ce bout de code

<iframe marginwidth="0" marginheight="0" width="240" height="80" scrolling="no" frameborder=0 src="irc_online.php">
</iframe>

J'ajoute ceci à un widget html que j'ai sur une barre latérale, existe-t-il un moyen de faire dire cette actualisation toutes les 30 secondes et pas le reste de ma page?

Merci beaucoup

16
VK27

Vous pouvez mettre une balise meta refresh dans le fichier irc_online.php

<meta http-equiv="refresh" content="30">

OU vous pouvez utiliser Javascript avec setInterval pour rafraîchir le src de la source ...

<script>
window.setInterval("reloadIFrame();", 30000);

function reloadIFrame() {
 document.frames["frameNameHere"].location.reload();
}
</script>
35
ahmet2106

Supposons que votre iframe id = myIframe

voici le code:

<script>
window.setInterval("reloadIFrame();", 30000);
function reloadIFrame() {
 document.getElementById("myIframe").src="YOUR_PAGE_URL_HERE";
}
</script>
12
SymbianSyMoh

J'ai une solution plus simple. Dans votre page de destination (irc_online.php), ajoutez une balise d'actualisation automatique dans l'en-tête.

1
Sush

D'accord ... alors je sais que je réponds à une question de décennie, mais je voulais ajouter quelque chose! Je voulais ajouter un calendrier google avec des paramètres iframe spéciaux. Le problème est que le calendrier ne fonctionnait pas sans lui. 30 secondes est un peu court pour mon utilisation, j'ai donc changé cela dans mon propre fichier en 15 minutes. Cela a fonctionné pour moi.

<script>
window.setInterval("reloadIFrame();", 30000);
function reloadIFrame() {
 document.getElementById("calendar").src=calendar.src;
}
</script>

    <iframe id="calendar" src="[URL]" style="border-width:0" width=100% height=100% frameborder="0" scrolling="no"></iframe>
1
T. Willemse

ajoutez "id = 'myiframe'" à l'iframe, puis utilisez ce script:

<script>

function f1()
{
 var x=document.getElementById("myiframe");
   x.src=x.src+Math.floor(random()%100000);
}

setInterval(f1,30*1000);

</script>
0
AbiusX