135 votes

Comment rafraîchir une IFrame à l'aide de Javascript ?

J'ai une page web avec un IFrame et un bouton. Une fois que le bouton est pressé, j'ai besoin que l'IFrame soit rafraîchi. Est-ce possible ? Si oui, comment ? J'ai fait des recherches et je n'ai pas trouvé de réponse.

1 votes

173voto

kjagiello Points 3268
var iframe = document.getElementById('youriframe');
iframe.src = iframe.src;

2 votes

Cela fonctionne pour moi dans cette version de Chrome : Version 24.0.1312.56 Ubuntu 12.04 (24.0.1312.56-0ubuntu0.12.04.1)

3 votes

FYI - Il y a actuellement (à partir de janvier 2013) un bug du projet Chromium ( code.google.com/p/chromium/issues/detail?id=172859 ) qui fait que les mises à jour des iframes s'ajoutent à l'historique du document.

0 votes

Si dans iFrame changer la page, cette méthode a perdu la navigation

111voto

nfechner Points 9402

Cela devrait aider :

document.getElementById('FrameID').contentWindow.location.reload(true);

EDIT : Correction du nom de l'objet selon le commentaire de @Joro.

3 votes

Cela ne fonctionne pas dans IE9. Vous devez utiliser contentWindow au lieu de contentDocument.

1 votes

Merci pour la réponse. De plus, si vous devez positivement provoquer un rafraîchissement d'une page à une autre dans l'iframe, alors au lieu de reload(true) vous utiliseriez ceci : document.getElementById('FrameID').contentWindow.location.re‌​place(new_url);

18 votes

Cela ne fonctionne pas avec les iframes ayant des origines différentes (protocole, nom d'hôte ou port).

21voto

Horia Dragomir Points 2122

À condition que l'iframe soit chargé à partir du même domaine, vous pouvez faire cela, ce qui est un peu plus logique :

iframe.contentWindow.location.reload();

7voto

Marek Pavelek Points 95

Fonctionne pour IE, Mozzila, Chrome

document.getElementById('YOUR IFRAME').contentDocument.location.reload(true);

1voto

Tony Points 11

Voici l'extrait HTML :

<td><iframe name="idFrame" id="idFrame" src="chat.txt" width="468" height="300"></iframe></td>

Et mon code Javascript :

window.onload = function(){
setInterval(function(){
    parent.frames['idFrame'].location.href = "chat.txt";
},1000);}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X