Hepoc
Messages postés22Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention 9 mai 2009
-
3 mai 2009 à 17:25
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
9 mai 2009 à 14:16
Bonjour,
Voilà que depuis hier je me suis mis en tête de faire disparaitre une "div", en cherchant un petit peu j'ai trouvé un moyen très simple de le faire grâce à l'appel d'une fonction. Seul problème, quand l'utilisateur rafraichît la page, cette fameuse div revient !
J'ai donc cherché du côté des cookies, mais je n'ai rien trouvé de bien utile.
Pourriez-vous m'aider pour mon petit soucis ? Merci d'avance !
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 4 mai 2009 à 09:24
Bonjour,
tu mémorises l'état ( caché/visible) du div dans ce cookie
en chargeant la page, tu lis le cookie et tu caches
ou tu montres le div en fonction du contenu de ce cookie
le "seul" problème qu'il te reste c'est : quand le div doit-il
être visible ?
Hepoc
Messages postés22Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention 9 mai 2009 4 mai 2009 à 17:46
Okay, voilà ce que j'ai fais :
Voici mes fonctions qui sont dans la page entete.htm (page présente de partout, car le site est fait de PHP et donc la page entete.htm est incluse dans chaque page) :
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function LireCookie(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 getCookieVal(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return "0";
}
function CookieVote() {
var date=new Date;
//date.setMonth(date.getHour()+2);
EcrireCookie("vote", "1", "30000");
}
-------------------------------------------------------------------------------
Biensur les bornes <SCRIPT langage='javascript></SCRIPT> sont présente dans le code, voici maintenant le code de la page ou se trouve le bouton de vote.
<SCRIPT language="javascript">
var avote == LireCookie("vote");
if (avote == "1") {
Masquer_OBJ('vote');
} else {
Afficher_OBJ('vote');
}
</SCRIPT>
<FORM>
[************** ]
</FORM>
-------------------------------------------------------------------------------
Et pourtant ça ne marche toujours pas
Quelqu'un pourrait il m'éclairer ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 5 mai 2009 à 10:10
tu te complique la vie avec tes cookies....
window.onload=function()
{ if ( document.cookie ) le_div.style.display="none";
else le_div.style.display="inline";
var da = new Date();
var d = new Date( Date.parse(da) + ( 1000*60*60*24*365 ) );
document.cookie = "on s'en fiche" +
";expires=" + d.toGMTString() + ";" ;
}
donc, si le cookie existe ==> cache le div
sinon, on le montre
il reste, comme je disais, à voir quand on veut le réafficher
ce div, car le cookie est créé pour ~1 an
et quand c'est nécessaire donc, il "suffit" de le "détruire"
c'est à dire l'écrire avec une date "expires" dépassée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
if { (document.cookie) vote.style.display="none";
}
else {
vote.style.display="visible";
var da = new Date();
var d = new Date(Date.parse(da) + (1000*60*60*2));
document.cookie = "vote" +
";expires=" + d.toGMTString() + ";" ;
}
}
</SCRIPT>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 6 mai 2009 à 13:45
il faut respecter la syntaxe html + javascript
les debugger te le disent d'ailleurs
Navigateurs |Quelques Explications |----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger FireBug, ----
Internet
Explorer
, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----
K-Meleon
, utils / Cons, ----
Opera
, utils / Asole d'erreurs, ----
Safari
, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
----
Hepoc
Messages postés22Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention 9 mai 2009 6 mai 2009 à 14:18
Warf, désolé d'abuser de ton temps Bul3, mais finalement mon problème n'est toujours pas réglé.
Ca a l'air de marcher, mais le problème c'est que maintenant, dés que j'ouvre la page le bouton disparrait !
Voici mon code (simplement la partie qui vérifie si le cookie est présent)
<SCRIPT language="javascript">
window.onload=function()
{
if (document.cookie) { vote.style.display="none";
}
else {
vote.style.display="visible";
var da = new Date();
var d = new Date(Date.parse(da) + (1000*60*60*2));
document.cookie = "vote" +
";expires=" + d.toGMTString() + ";" ;
}
}
</SCRIPT>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 6 mai 2009 à 14:25
>> mais le problème c'est que maintenant, dés que j'ouvre la page le bouton disparrait !
normal... si ça a fonctionné, le cookie existe.
( je me re cite ) il reste, comme je disais, à voir quand on veut le réafficher
ce div, car le cookie est créé pour ~1 an
( on peut le détruire manuellement ou dans le navigateur
et par javascript bien entendu ... quand il le faut !!!!!!! )
if (document.cookie) { vote.style.display="none";
}
else {
vote.style.display="visible";
var da = new Date();
var d = new Date(Date.parse(da) + (1000*60*60*2));
document.cookie = "vote" +
";expires=" + d.toGMTString() + ";" ;
}
}
</SCRIPT>
</SCRIPT>
Pensez à voter toutes les 2H, une récompense vous attend ingame !
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
//----------------------------------------------
// Affichage d'un Objet déclaré dans le document...
//----------------------------------------------
function Affiche_OBJ(){
var Arg = arguments; // Récup liste des arguments passée à la fonction
var Obj;
for( var i=0; i< Arg.length; i++){ // On parcours la liste
Obj = document.getElementById( Arg[i]); // Récup Objet correspondant
if( Obj){
Obj.style.visibility = "visible";
//-- Ou autre méthode
Obj.style.display = "";
}
}
}
//----------------------------------------------
// Masquage d'un Objet déclaré dans le document...
//----------------------------------------------
function Masque_OBJ(){
var Arg = arguments; // Récup liste des arguments passée à la fonction
var Obj;
for( var i=0; i< Arg.length; i++){ // On parcours la liste
Obj = document.getElementById( Arg[i]); // Récup Objet correspondant
if( Obj){
Obj.style.visibility = "hidden";
//-- Ou autre méthode
Obj.style.display = "none";
}
}
}
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 8 mai 2009 à 09:43
et...j'ai testé avec F5, et non pas en cliquant sur le lien !!! :
car là, mon foie, on recharge la page puis ( ou avant ? ) on la remplace
par la réponse de http://www.root-top.com/topsite/mmorpg/in.php?ID=1091 alors.....
Hepoc
Messages postés22Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention 9 mai 2009 8 mai 2009 à 10:51
Et bien ça ne marche toujours pas chez moi, au chargement de la page le bouton s'affiche moin d'une seconde pour ensuite disparaitre.
J'ai oublié de préciser une chose peut être importante, mon site est codé en PHP et chaque page est incluse depuis l'index, (grâce à la fonction GET et à un tableau listant les pages autorisées), voici ce qu'inclus l'index, dans l'ordre :
- L'entête (entete.htm, rien de spécial, comporte simplement la banniere du site)
- Le menu (là aussi rien de spécial, si se n'est qu'il détecte si l'utilisateur est loggué et qu'il affiche remplace le bouton Connexion par Déconexion, si c'est le cas)
- La page centrale (dans ce cas vote.php).
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 8 mai 2009 à 11:16
>>Et bien ça ne marche toujours pas chez moi, au chargement de la page le
bouton
>>s'affiche moins d'une seconde pour ensuite disparaitre.
euh....
sans rien faire ?
essaye mon exemple "tel quel"... ça baigne
j'ai d'ailleurs dis une connerie ( j'en dirais d'autres :! )
je me cite en complétant :
on recharge la page puis on la remplace par la réponse de http://www.root-top.com/topsite/mmorpg/in.php?ID= 1091
comme il y a un target on ouvre une nouvelle page ! ,
donc ça baigne
index.php = entete.htm + menu.htm + vote.php
ça ne doit pas géner ? mais va savoir...
Hepoc
Messages postés22Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention 9 mai 2009 8 mai 2009 à 11:58
J'ai essayé ton exemple, ça ne fonctionne toujours pas ... Je ne sais vraiment pas se qui cloche, FireFox ne m'indique aucune erreur.
Et oui 'sans rien faire', je clique simplement sur le bouton "Vote" qui inclus la page vote au milieu, et le bouton apparait l'espace d'une demi seconde pour disparraitre ensuite. C'est à une plus rien y comprendre.
Hepoc
Messages postés22Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention 9 mai 2009 8 mai 2009 à 12:07
Je crois avoir un début de réponse, en reprenant ton code et inversant les actions (affichage si le cookie existe) le bouton s'affiche, je peux donc en déduir que le cookie existe, seul problème mon site n'utilise pas de cookie mais des variables de session (toujours en PHP), il faudrait donc peut être définir un champ propre au vote dans le cookie, je vais essayé et je poste si ça marche.