dimanche 28 juillet 2013

RAFRAÎCHISSEMENT d'une seule page

Rafraîchir un site ou blog automatiquement n'est pas bien difficile et on sait bien le faire en général. Pour rafraîchir seulement une page de site Internet, pas de problème non plus puisqu'on a la main sur le code de chaque page. Rien que dans ce blog, vous pourrez trouver plusieurs méthodes, y compris une qui permet de rafraîchir seulement une image distante...

Mais dans le cas de Blogger, le problème se pose différemment. Si on modifie le code du <head>, c'est tout le blog qui se rafraîchira automatiquement toute les n minutes. Cela peut être gênant dans certains cas particuliers.

Dans 2 de mes blogs, c'était problématique car ma page de liens par exemple doit rester tranquille mais en fait, quand le blog s'actualise, c'est la page principale qui s'affiche. Je suis donc obligé de retourner à ma page de liens (qui m'est très utile pour mes bulletins météo).

Avec le code Javascript suivant, pas de problèmes. Seules les pages (ou les posts) qui le contiennent se rafraîchiront. Je précise que dans mes 2 blogs météo, 1 seul post est affiché à la fois. Si vous avez plusieurs posts par page (ce qui est le plus souvent le cas), il faudra insérer ce code dans le HTML du modèle ou dans un widget invisible et non pas à chaque post ou encore dans un seul message. Cela perd donc de son intérêt et c'est même gênant puisque plusieurs scripts identiques vont peut-être fonctionner en même temps.

CE CODE NE SE JUSTIFIE DONC QUE POUR LES BLOGS N'AFFICHANT QU'UN SEUL MESSAGE À LA FOIS.

Mes deux blogs météo: http://nbbc-wx.blogspot.fr et http://nbbc-met.blogspot.fr

Ci-dessous, un exemple avec une page d'un de mes blogs minimalistes dans un iframe



LE CODE

Remplacez ce qui est en rouge à votre convenance.
Vous pouvez l'insérer dans le code HTML de votre message au début ou à la fin (où vous voulez).

<script language="JavaScript">

//Refresh page script- By Brett Taylor (glutnix@yahoo.com.au)
//Modified by Dynamic Drive for NS4, NS6+
//Visit http://www.dynamicdrive.com for this script

//configurer l'intervalle  de rafraîchissement (en secondes)
var countDownInterval=30;
//configure width of displayed text, in px (applicable only in NS4)
var c_reloadwidth=200
</script>

<ilayer id="c_reload" width=&{c_reloadwidth}; ><layer id="c_reload2" width=&{c_reloadwidth}; left=0 top=0></layer></ilayer>

<script>

var countDownTime=countDownInterval+1;
function countDown(){
countDownTime--;
if (countDownTime <=0){
countDownTime=countDownInterval;
clearTimeout(counter)
window.location.reload()
return
}
if (document.all) //if IE 4+
document.all.countDownText.innerText = countDownTime+" ";
else if (document.getElementById) //else if NS6+
document.getElementById("countDownText").innerHTML=countDownTime+" "
else if (document.layers){ //CHANGE TEXT BELOW TO YOUR OWN
document.c_reload.document.c_reload2.document.write('Next <a href="javascript:window.location.reload()">rafraîchissement</a> dans <b id="countDownText">'+countDownTime+' </b> seconds')
document.c_reload.document.c_reload2.document.close()
}
counter=setTimeout("countDown()", 1000);
}

function startit(){
if (document.all||document.getElementById) //REMPLACEZ LE TEXTE CI-DESSOUS PAR LE VÔTRE
document.write('Prochain <a href="javascript:window.location.reload()">rafraîchissement</a>  de ce cadre dans <b id="countDownText">'+countDownTime+' </b> secondes')
countDown()
}

if (document.all||document.getElementById)
startit()
else
window.onload=startit

</script>

Script de http://www.dynamicdrive.com

Aucun commentaire:

Enregistrer un commentaire