Rafraîchissement page correct sous Firefox mais pas sous IE

Le
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 :(

Si vous avez une idée

Merci !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SAM
Le #1846712
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

Béryl
Le #1847629


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>

<!--[if IE]>
<style type="text/css">
@import url(ie.css);
</style
<![endif]-->

<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>

<body onLoad="reload(0)">
<body>

<div id="raffraich">
<form name="recharge">
Rafraichissement :
<select name="refresh" size="1" onChange="reload(1)">
<option value="0">Non</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="60">60</option>
<option value="120">120</option>
<option value="300">300</option>
</select>
sec.
</form>
</div>


(snip...)

</body>
</html>

Béryl
Le #1850907

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.




Impeccable ! Ta routine fonctionne nickel sur tous les navigateurs !
Sans passer par les cookies, en plus ; sympa l'astuce.
Merci !

SAM
Le #1867693

Impeccable ! Ta routine fonctionne nickel sur tous les navigateurs !
Sans passer par les cookies, en plus ; sympa l'astuce.
Merci !


Dommage de devoir en arriver là alors que tu avais un système super
simple et concis.


--
sm

Publicité
Poster une réponse
Anonyme