Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rafraîchissement page correct sous Firefox mais pas sous IE

4 réponses
Avatar
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 !

4 réponses

Avatar
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

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

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

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




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

Avatar
SAM

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