Compteur évoluant de page en page ?
chrbar
-
Tiller Messages postés 783 Statut Membre -
Tiller Messages postés 783 Statut Membre -
Salut,
J'aimerais reproduire l'effet du compteur présent en haut de la page http://www.ensembleverslavenir.ca/fr/accueil/
Le code pour le calcul est simple (voir ci-dessous), mais il doit y avoir un système de cookies (et/ou une fonction ASP) qui permet de faire continuer le compteur de page en page (idem si on effectue un rafraîchissement de la page).
Un ID doit se créer à chaque fois que le navigateur ouvre une session sur le site.
Le compteur repart à zéro lorsque le navigateur quitte le site.
Auriez-vous une idée de comment re-coder le même système mais en PHP?
Merci beaucoup :)
Chris
<div class="counter"><span id="counter">8.15</span> tonnes</strong> de gaz à effet de serre ont été émis au Québec depuis le début de votre visite.</div>
<script language="JavaScript" type="text/javascript">
var sTotal = 0;
function gazCount(){
sTotal=sTotal+(0.1);
document.getElementById("counter").innerHTML = r2(sTotal*2.91);
//document.getElementById("counter").innerHTML = r2(sTotal);
setTimeout("gazCount();", 100);
}
function r2(n){
ans = n * 1000
ans = Math.round(ans /10) + ""
while (ans.length < 3) {ans = "0" + ans}
len = ans.length
ans = ans.substring(0,len-2) + "." + ans.substring(len-2,len)
return ans
}
gazCount();
</script>
J'aimerais reproduire l'effet du compteur présent en haut de la page http://www.ensembleverslavenir.ca/fr/accueil/
Le code pour le calcul est simple (voir ci-dessous), mais il doit y avoir un système de cookies (et/ou une fonction ASP) qui permet de faire continuer le compteur de page en page (idem si on effectue un rafraîchissement de la page).
Un ID doit se créer à chaque fois que le navigateur ouvre une session sur le site.
Le compteur repart à zéro lorsque le navigateur quitte le site.
Auriez-vous une idée de comment re-coder le même système mais en PHP?
Merci beaucoup :)
Chris
<div class="counter"><span id="counter">8.15</span> tonnes</strong> de gaz à effet de serre ont été émis au Québec depuis le début de votre visite.</div>
<script language="JavaScript" type="text/javascript">
var sTotal = 0;
function gazCount(){
sTotal=sTotal+(0.1);
document.getElementById("counter").innerHTML = r2(sTotal*2.91);
//document.getElementById("counter").innerHTML = r2(sTotal);
setTimeout("gazCount();", 100);
}
function r2(n){
ans = n * 1000
ans = Math.round(ans /10) + ""
while (ans.length < 3) {ans = "0" + ans}
len = ans.length
ans = ans.substring(0,len-2) + "." + ans.substring(len-2,len)
return ans
}
gazCount();
</script>
A voir également:
- Compteur évoluant de page en page ?
- Supprimer page word - Guide
- Page d'accueil - Guide
- Imprimer tableau excel sur une page - Guide
- Page accueil iphone - Guide
- Page privée - Guide
2 réponses
C'est pas propre mais sa marche..
Et juste pour info, c'est une connerie ce compteur.
Une fois la page chargée, la serveur ne travaille plus "pour toi"
Et juste pour info, c'est une connerie ce compteur.
Une fois la page chargée, la serveur ne travaille plus "pour toi"
<script language="JavaScript" type="text/javascript">
var sTotal = 0;
if (lire_cookie('compteur'))
sTotal = parseFloat(lire_cookie('compteur'));
function gazCount(start){
sTotal=sTotal+(0.1);
document.getElementById("counter").innerHTML = r2(sTotal*2.91);
document.cookie="compteur=" + sTotal;
setTimeout("gazCount();", 100);
}
function r2(n){
ans = n * 1000
ans = Math.round(ans /10) + ""
while (ans.length < 3) {ans = "0" + ans}
len = ans.length
ans = ans.substring(0,len-2) + "." + ans.substring(len-2,len)
return ans
}
function lire_cookie(nom) {
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen){
var j=i+alen;
if (document.cookie.substring(i, j)==arg)
return arguments_cookies(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return false;
}
function arguments_cookies(offset){
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
setTimeout('gazCount()', 100);
</script>
<script language="JavaScript" type="text/javascript">
var sTotal = 0;
if (lire_cookie('compteur'))
sTotal = parseFloat(lire_cookie('compteur'));
function gazCount(start){
sTotal=sTotal+(0.1);
document.getElementById("counter").innerHTML = r2(sTotal*2.91);
document.cookie="compteur=" + sTotal;
setTimeout("gazCount();", 100);
}
function r2(n){
ans = n * 1000
ans = Math.round(ans /10) + ""
while (ans.length < 3) {ans = "0" + ans}
len = ans.length
ans = ans.substring(0,len-2) + "." + ans.substring(len-2,len)
return ans
}
function lire_cookie(nom) {
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen){
var j=i+alen;
if (document.cookie.substring(i, j)==arg)
return arguments_cookies(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return false;
}
function arguments_cookies(offset){
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
window.onload = gazCount;
</script>
Essaie ça.
Evite les PMs la prochaines fois ;o
Cela fonctionne très bien sous IE6, Firefox, Safari et Opera, mais il y a une erreur sous IE7!
Sous IE7, cela fonctionne correctement quand on ouvre une nouvelle page et que l'on passe d'une page à une autre, mais cela arrête de fonctionner quand on ouvre la page dans un nouvel onglet ou dans une nouvelle page via le bouton de droite de la souris sur un lien, le compteur n'apparaît pas!
Cela peut venir d'un conflit avec les autres scripts présent dans la page?
J'ai activé les débogages de scripts dans IE, et j'obtiens cette erreur:
A Runtime Error has occurred.
Do you wish to Debug?
Line: 243
Error: 'document.getElementById(...)' is null or not an object.
La ligne concernée est:
document.getElementById("counter").innerHTML = r2(sTotal*2.91);
Serais-tu comment corriger ce problème?
Merci beaucoup :)
Chris