Rafraîchissement page correct sous Firefox mais pas sous IE
4 réponses
Béryl
Bonjour,
J'ai créé une page web qui permet d'avoir accès à des données d'une
installation sensible dans la société où je travaille.
Certaines personnes ont émis le désir de voir la page rafraîchie
automatiquement toutes les X secondes, chacune ayant une valeur de X
différentes, évidemment ;)
Un petit script javascript piloté par un formulaire intégrant une liste
de valeurs (0,5,10,30,60 secondes) fait parfaitement bien le boulot.
Mais voilà, tout fonctionne impeccablement sous Firefox mais pas sous IE...
En fait, sous IE, si je choisi un rafraîchissement toutes les 5
secondes, la page se relance bien mais la liste se repositionne sur la
première valeur (0, pas de rafraîchissement).
Sous Firefox, la liste reste bien sur 5 secondes.
Pourquoi ?
N'ayant pas trouvé de réponse, je planche sur un moyen de mémoriser la
valeur (cookie) puis de la ré-injecter dans le code HTML de la liste.
Je la mémorise bien, mais impossible de trouver le code permettant de
rajouter un SELECTED à la volée dans les options d'un <SELECT></SELECT>
Je l'ai déjà fait avec un script PHP, mais là, le serveur que j'utilise
n'intègre pas PHP :(
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SAM
Bonjour,
J'ai créé une page web qui permet d'avoir accès à des données d'une installation sensible dans la société où je travaille. Certaines personnes ont émis le désir de voir la page rafraîchie automatiquement toutes les X secondes, chacune ayant une valeur de X différentes, évidemment ;)
Un petit script javascript piloté par un formulaire intégrant une liste de valeurs (0,5,10,30,60 secondes) fait parfaitement bien le boulot. Mais voilà, tout fonctionne impeccablement sous Firefox mais pas sous IE... En fait, sous IE, si je choisi un rafraîchissement toutes les 5 secondes, la page se relance bien mais la liste se repositionne sur la première valeur (0, pas de rafraîchissement). Sous Firefox, la liste reste bien sur 5 secondes.
Pourquoi ?
Comme tu ne dis pas comment tu fais ... ça restera un mystère
<script type="text/javascript">
var url = self.location, tempo = url.search;
if(tempo.length>1) { url = url.toString().split('?')[0]; tempo = tempo.substring(1); } else tempo = 5000; // défaut = 5 secondes
function rouvre() { self.location = url+'?'+tempo; }
window.onload = function() { var s = document.airFrais.elements[0].options; for(var i=0; i<s.length; i++) if(s[i].text == tempo/1000) s[i].selected = true; if(tempo>0) setTimeout(rouvre, tempo); } </script> <form name="airFrais"> Rafraichir toutes les <select onchange="var k = this.selectedIndex; tempo = this.options[k].text*1000; rouvre();"> <option>0 <option>1 <option>3 <option selected>5 <option>7 <option>10 </select> secondes.
-- sm
Bonjour,
J'ai créé une page web qui permet d'avoir accès à des données d'une
installation sensible dans la société où je travaille.
Certaines personnes ont émis le désir de voir la page rafraîchie
automatiquement toutes les X secondes, chacune ayant une valeur de X
différentes, évidemment ;)
Un petit script javascript piloté par un formulaire intégrant une liste
de valeurs (0,5,10,30,60 secondes) fait parfaitement bien le boulot.
Mais voilà, tout fonctionne impeccablement sous Firefox mais pas sous IE...
En fait, sous IE, si je choisi un rafraîchissement toutes les 5
secondes, la page se relance bien mais la liste se repositionne sur la
première valeur (0, pas de rafraîchissement).
Sous Firefox, la liste reste bien sur 5 secondes.
Pourquoi ?
Comme tu ne dis pas comment tu fais ... ça restera un mystère
<script type="text/javascript">
var url = self.location,
tempo = url.search;
if(tempo.length>1) {
url = url.toString().split('?')[0];
tempo = tempo.substring(1);
}
else tempo = 5000; // défaut = 5 secondes
function rouvre() { self.location = url+'?'+tempo; }
window.onload = function() {
var s = document.airFrais.elements[0].options;
for(var i=0; i<s.length; i++)
if(s[i].text == tempo/1000) s[i].selected = true;
if(tempo>0)
setTimeout(rouvre, tempo);
}
</script>
<form name="airFrais">
Rafraichir toutes les
<select onchange="var k = this.selectedIndex;
tempo = this.options[k].text*1000;
rouvre();">
<option>0
<option>1
<option>3
<option selected>5
<option>7
<option>10
</select> secondes.
J'ai créé une page web qui permet d'avoir accès à des données d'une installation sensible dans la société où je travaille. Certaines personnes ont émis le désir de voir la page rafraîchie automatiquement toutes les X secondes, chacune ayant une valeur de X différentes, évidemment ;)
Un petit script javascript piloté par un formulaire intégrant une liste de valeurs (0,5,10,30,60 secondes) fait parfaitement bien le boulot. Mais voilà, tout fonctionne impeccablement sous Firefox mais pas sous IE... En fait, sous IE, si je choisi un rafraîchissement toutes les 5 secondes, la page se relance bien mais la liste se repositionne sur la première valeur (0, pas de rafraîchissement). Sous Firefox, la liste reste bien sur 5 secondes.
Pourquoi ?
Comme tu ne dis pas comment tu fais ... ça restera un mystère
<script type="text/javascript">
var url = self.location, tempo = url.search;
if(tempo.length>1) { url = url.toString().split('?')[0]; tempo = tempo.substring(1); } else tempo = 5000; // défaut = 5 secondes
function rouvre() { self.location = url+'?'+tempo; }
window.onload = function() { var s = document.airFrais.elements[0].options; for(var i=0; i<s.length; i++) if(s[i].text == tempo/1000) s[i].selected = true; if(tempo>0) setTimeout(rouvre, tempo); } </script> <form name="airFrais"> Rafraichir toutes les <select onchange="var k = this.selectedIndex; tempo = this.options[k].text*1000; rouvre();"> <option>0 <option>1 <option>3 <option selected>5 <option>7 <option>10 </select> secondes.
-- sm
Béryl
Comme tu ne dis pas comment tu fais ... ça restera un mystère
<script type="text/javascript">
var url = self.location, tempo = url.search;
if(tempo.length>1) { url = url.toString().split('?')[0]; tempo = tempo.substring(1); } else tempo = 5000; // défaut = 5 secondes
function rouvre() { self.location = url+'?'+tempo; }
window.onload = function() { var s = document.airFrais.elements[0].options; for(var i=0; i<s.length; i++) if(s[i].text == tempo/1000) s[i].selected = true; if(tempo>0) setTimeout(rouvre, tempo); } </script> <form name="airFrais"> Rafraichir toutes les <select onchange="var k = this.selectedIndex; tempo = this.options[k].text*1000; rouvre();"> <option>0 <option>1 <option>3 <option selected>5 <option>7 <option>10 </select> secondes.
Merci, je vais essayer ton astuce. Voici comment j'ai fait :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>titre</title> <link rel="stylesheet" type="text/css" href="style.css">
<script language="Javascript" type="text/javascript"> <!-- function reload(testnav) { var temps; if (navigator.appName=="Microsoft Internet Explorer" && testnav==1) { alert("Le rafraichissement fonctionne mal sous Internet Explorer..."); } temps=document.recharge.refresh.value; if (temps!=0) { setTimeout("document.location.reload()",temps*1000); } } //--> </script> </head>
<script language="Javascript" type="text/javascript">
<!--
function reload(testnav) {
var temps;
if (navigator.appName=="Microsoft Internet Explorer" && testnav==1) {
alert("Le rafraichissement fonctionne mal sous Internet Explorer...");
}
temps=document.recharge.refresh.value;
if (temps!=0) {
setTimeout("document.location.reload()",temps*1000);
}
}
//-->
</script>
</head>
<script language="Javascript" type="text/javascript"> <!-- function reload(testnav) { var temps; if (navigator.appName=="Microsoft Internet Explorer" && testnav==1) { alert("Le rafraichissement fonctionne mal sous Internet Explorer..."); } temps=document.recharge.refresh.value; if (temps!=0) { setTimeout("document.location.reload()",temps*1000); } } //--> </script> </head>