Bonjour tout le monde ...
J'ai trouvé un javascript tout fait pour cacher une DIV avec support de cookies mais il est incomplet et je me demandais si une âme charitable pouvait m'aider à le compléter/modifier ...
<html>
<head>
<script type="text/javascript">
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
function setTheDivStyle() {
if(!readCookie('wroteIt')) {
// if cookie not found display the div and create the cookie
document.getElementById("theLink").style.display="block";
createCookie('wroteIt', 'wroteIt', 1); // 1 day = 24 hours persistence
}
else {
// if cookie found hide the div
document.getElementById("theLink").style.display="none";
}
}
</script>
</head>
<body onload = "setTheDivStyle()">
<div id = "theLink" style="display:block">Your Message Here And You See It Only Once Per 24 Hours</div>
</body>
</html>
Ce script sert à afficher une div et son contenu une fois toutes les 24heures même si on fait un refresh de la page.
Je me suis dit que c'était un bon début et qu'il suffirait de modifier ce script pour arriver à une solution viable pour mon site.
De mon côté je vous ré explique ce que le script modifié doit pouvoir faire :
- Tout d'abord, il faut savoir que tous mes div s'affichent par défaut "display block" lorsque je visite la page pour la première fois.
- Ensuite; lorsque un utilisateur clique sur le bouton [+ -] pour cacher la div (ou l'afficher si elle est cachée), l'état de ce dernier (display:block ou none) doit être enregistré dans un cookie pour restituer les valeurs (display:block ou none) lors d'un refresh de page et ainsi cacher ou afficher le(s) div concerné(s).
Voici le code javascript qui me permet actuellement de cacher/afficher une div
function showHide (id)
{
//recuperation de l'etat actuel de l'element et affectation de son opposé
var showHide = (document.getElementById(id).style.display == 'none' ) ? 'block' : 'none';
//nouvelle valeur pour l'element id
document.getElementById(id).style.display = showHide
}
Et voici un exemple de DIV de mon site web avec appel de la fonction javascript showHide();
Remarque : j'ai plusieurs div avec différentes ID
// bannerGalleryContainer = CSS affichage image arrière-plan
<div id="bannerGalleryContainer"><a name="photoweb"></a>
// bannerGalleryTitle1 = CSS affichage du titre de la galerie et de son icône
<p class="bannerGalleryTitle1"><img class="home" src="medias/images/icon-photoweb.png" />Ma galerie photo ...</p>
// showhide = CSS affichage et positionnement des icônes (bouton retour accueil et bouton [+ -])
<div id="showhide">
<a href="#home"><img src="medias/images/home.png" /></a>
<a href="#photoweb" onclick="showHide('galleryContainer')"><img src="medias/images/icon-plusmoins.png" /></a>
</div>
</div>
// galleryContainer = DIV qui doit être caché ou affiché
<div id="galleryContainer">
CONTENU QUI DOIT ETRE AFFICHE OU CACHE
</div>
Voilà, j'espère avoir donné assez de renseignements ...
Merci 1000 fois pour votre aide,
raph
Bonjour tout le monde ...
J'ai trouvé un javascript tout fait pour cacher une DIV avec support de cookies mais il est incomplet et je me demandais si une âme charitable pouvait m'aider à le compléter/modifier ...
[php]<html>
<head>
<script type="text/javascript">
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
function setTheDivStyle() {
if(!readCookie('wroteIt')) {
// if cookie not found display the div and create the cookie
document.getElementById("theLink").style.display="block";
createCookie('wroteIt', 'wroteIt', 1); // 1 day = 24 hours persistence
}
else {
// if cookie found hide the div
document.getElementById("theLink").style.display="none";
}
}
</script>
</head>
<body onload = "setTheDivStyle()">
<div id = "theLink" style="display:block">Your Message Here And You See It Only Once Per 24 Hours</div>
</body>
</html>[/php]
Ce script sert à afficher une div et son contenu une fois toutes les 24heures même si on fait un refresh de la page.
Je me suis dit que c'était un bon début et qu'il suffirait de modifier ce script pour arriver à une solution viable pour mon site.
De mon côté je vous ré explique ce que le script modifié doit pouvoir faire :
- Tout d'abord, il faut savoir que tous mes div s'affichent par défaut "display block" lorsque je visite la page pour la première fois.
- Ensuite; lorsque un utilisateur clique sur le bouton [+ -] pour cacher la div (ou l'afficher si elle est cachée), l'état de ce dernier (display:block ou none) doit être enregistré dans un cookie pour restituer les valeurs (display:block ou none) lors d'un refresh de page et ainsi cacher ou afficher le(s) div concerné(s).
Voici le code javascript qui me permet actuellement de cacher/afficher une div
[php]function showHide (id)
{
//recuperation de l'etat actuel de l'element et affectation de son opposé
var showHide = (document.getElementById(id).style.display == 'none' ) ? 'block' : 'none';
//nouvelle valeur pour l'element id
document.getElementById(id).style.display = showHide
}[/php]
Et voici un exemple de DIV de mon site web avec appel de la fonction javascript showHide();
[b]Remarque : j'ai plusieurs div avec différentes ID[/b]
[php]
// bannerGalleryContainer = CSS affichage image arrière-plan
<div id="bannerGalleryContainer"><a name="photoweb"></a>
// bannerGalleryTitle1 = CSS affichage du titre de la galerie et de son icône
<p class="bannerGalleryTitle1"><img class="home" src="medias/images/icon-photoweb.png" />Ma galerie photo ...</p>
// showhide = CSS affichage et positionnement des icônes (bouton retour accueil et bouton [+ -])
<div id="showhide">
<a href="#home"><img src="medias/images/home.png" /></a>
<a href="#photoweb" onclick="showHide('galleryContainer')"><img src="medias/images/icon-plusmoins.png" /></a>
</div>
</div>
// galleryContainer = DIV qui doit être caché ou affiché
<div id="galleryContainer">
CONTENU QUI DOIT ETRE AFFICHE OU CACHE
</div>[/php]
Voilà, j'espère avoir donné assez de renseignements ...
Merci 1000 fois pour votre aide,
raph