Comment rafraichir 3 iframe ?

Utilisateur anonyme - 21 janv. 2011 à 04:23
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 - 31 janv. 2011 à 14:42
bonjour
dans ce script en bas le contenu des 3 iframe ce change chaque 10 s !
donc moi je veux que le contenu de premier iframe ce change apres 15 s
la deuxième iframe en 60 s et la troisieme en 150 s
et aussi parfois les trois iframe m'affiche le meme contenu .
je veux que si l'iframe 1 m'affiche le contenu A . l'iframe 2 et 3 m'affiche n'import quel sauf le contenu A
quelqu'un peut m'aider svp ? Merci d'avance
pardon pour les fautes d'hortographe

<script language= "JavaScript1.2">
// l'utilité de ces deux variables sont plus que discutables...et complétement inutile (d'ailleurs, elles ne sont plus utilisées).
//var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
//var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1

//Specify IFRAME display attributes
var iframeprops='width=600 height=200 marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="1" scrolling="no"'

//Specify random URLs to display inside iframe
var randomcontent=new Array()
randomcontent[0]="page_2.html"
randomcontent[1]="page_3.html"
randomcontent[2]="page_4.html"
randomcontent[3]="page_5.html"
randomcontent[4]="page_6.html"

                                                                     
// liste des identifiants des frames, pour rajouter une nouvelle iFrame, il suffit simplement de rajouter un id à l'enregistrement suivant.
// Il est de plus possible d'appliquer un style directement sur les iframe via leurs identifiants.
var listFramesId = ["dynstuff", "frame1", "frame2"];

// on va ajouter autant d'iframe que préciser dans la liste des iframes (listFramesId);
for ( var i = 0; i<listFramesId.length; i++){
document.write('  ');
}
// Variable contenant le timer de rafraichissement des iframes.
var interval  = null;


function random_iframe(){
for ( var i = 0; i < listFramesId.length; i++){
// La méthode getElementById est implémenté dans la plupart des navigateurs.
var iframeobj= document.getElementById(listFramesId[i]);
// Affecte la nouvelle source à l'iframe.
iframeobj.src=randomcontent[Math.floor(Math.random()*randomcontent.length)];

 
}


}

/**
* Chargement de la page.
*/
window.onload=function (){
// Affichage en entrée dans la page.
random_iframe();
// et enfin, déclenche un interval (toutes les 10 secondes), interval étant exprimé en millième de seconde, 10 secondes, font donc 10000 millisecondes
interval = setInterval ("random_iframe()",10000 );
}

/**
* Fermeture de la page
*/
window.onunload = function(){
// Détruit l'interval afin d'éviter les effets de bores et une conso mémoire importante.
clearInterval( interval);
}

</script>


1 réponse

monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
31 janv. 2011 à 14:42
Tu utilises du javascript pourquoi ne pas utiliser de l'ajax dans ce cas là, tu pourrais faire ce que tu veux.

Et si tu veux à titre informatif il y a une fonction periodical updater dans la bibliothèque prototype.js qui te permet de spécifier un délai au bout duquel est refresh une div ou un élément spécifié via une id de ta page.

Sinon voici un exemple de requête Ajax :

function pvUpdate(id,url){
var xhr_object = null;
var position = id;
   if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
  else
    if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 

// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
var mesScripts = document.getElementById("bdv").getElementsByTagName("script");
for (var i=0; i<mesScripts.length; i++) {
eval(mesScripts[i].innerHTML);
}


}
}
// dans le cas du get
xhr_object.send(null);

  
}


Les iframes, c'est moches aujourd'hui en plus :p

Bonne journée à tous =)
0
Rejoignez-nous