11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,
je suis ok en html et en css (débutante confirmée) mais nulleee (pour l'instant!) en js...
j'ai installé sur ce site http://www.proprietaireatours.com/ ce qui s'appelle apparemment communément une cookie bar, qui permet à l'internaute d'accepter les cookie du site.
J'ai un enorme problème et un petit problème....
Je commence par le énorme comme ça c'est fait Smiley biggrin
- Mon client souhaiterait que lorsqu'un internaute "accepter" ça soit pris en compte pour un temps donné (la loi autorise 13 mois donc par exemple 300 jours et on est bien). En effet actuellement à chaque rechargement de page la cookie bar réapparaît... Smiley eek
- Le second "pitit" souci c'est que je n'arrive pas à faire en sorte que le lien externe du bouton "en savoir plus" s'ouvre dans une autre fenêtre (en blank)
Voili voilou,
Merci par avance.
Sab
Bonjour,

Il faut paramétrer la variable var defaults dans le script jquery.cookiebar.js en conséquence :
expireDays : 300,

a écrit :
- Le second "pitit" souci c'est que je n'arrive pas à faire en sorte que le lien externe du bouton "en savoir plus" s'ouvre dans une autre fenêtre (en blank)


Dans le script jquery.cookiebar.js, cherchez :
      //Sets up privacy policy button if required
      if(options.policyButton){
        var policyButton = '<a href="'+options.policyURL+'" class="cb-policy">'+options.policyText+'</a>';
      }else{
        var policyButton = '';
      }

et remplacez comme suit :

var policyButton = '<a href="'+options.policyURL+'" class="cb-policy">'+options.policyText+' target="_blank"</a>';
Merci iddsoft,
concernant le second point : il est résolu ! merci mille fois.

En revanche concernant le premier point, j'y avais pensé à vrai dire, la valeur que j'avais renseigné était pour une semaine soit : "7". Je l'ai passé à "300" mais ça ne résout pas le souci...
A chaque fois que je recharge la cookie bar réapparaît Smiley ohwell .
De fait, la variable "expireDays" détermine la durée du cookie créé, et non de la cookiebar Smiley sweatdrop .

En fait, il faudrait créer un script js qui va :
- créer un cookie lorsque le bouton "Accepter" a été enfoncé,
- vérifier, au chargement de la page, s'il existe un cookie indiquant que le bouton "Accepter" a été enfoncé,
- dans l'affirmative, masquer le div qui contient la cookiebar

A creuser ...
Modifié par lddsoft (23 Feb 2015 - 16:09)
Smiley lol
quelqu'un a-t-il une idée de génie, pour venir en aide à ma cookie bar qui énerve Smiley langue mon client ?
Merciii
Pour en revenir à mon post de 16:02:09 :
J'ai pu vérifier que si on clique sur "Accepter", le script "jquery.cookiebar.js" crée un cookie nommé "cb-enabled" et lui charge comme contenu : "accepted".
On peut s'en servir lors de l'élaboration d'un petit script pour cacher le DIV contenant la cookiebar et dont l'ID est "cookie-bar".

EDIT: c'est peut-être pas une "idée de génie", mais ça peut être efficace Smiley cligne
De plus, est-il nécessaire d'appeler cette "cookie-bar" dans toutes les pages ?
Modifié par lddsoft (23 Feb 2015 - 20:37)
Merci iddsoft,
Ca me parait être une excellente idée tout de même Smiley smile
Mais je n'y connait rien en js donc je vais tenter des recherches pour trouver ce script.

iddsoft : De plus, est-il nécessaire d'appeler cette "cookie-bar" dans toutes les pages ?
Non effectivement c'est pas forcé au niveau de la cnil mais je me disais qu'une fois que la cookie bar sera validée comme elle ne doit plus s'afficher ça ne sera plus aussi gênant Smiley rolleyes
En plaçant ceci dans le script jquery.cookieBar.js
  //Masque la cookie-bar si le cookie contient la valeur 'accepted'
  if(cookieValue=='accepted'){
	  $('#cookie-bar').hide();
  }
JUSTE AVANT la dernière ligne
})(jQuery);
Bien sûr, si vous maintenez le script jquery.cookieBar.js dans toutes les pages, il faudra apporter cette modification dans toutes les pages Smiley rolleyes ...

Faites d'abord un essai sur la première page en la rechargeant une ou deux fois !
Modifié par lddsoft (24 Feb 2015 - 15:25)
Bonjour.

Essaie de mettre dans ton appel :
forceShow: false


Parce que l'on est pas censé allé modifier le plugin s'il est bien fait, toutes les options sont accessibles. Donc normalement le texte de la barre ne devrait pas être dans le code du plugin (qui est en anglais par défaut), mais dans ton appel qui est totalement vide aujourd'hui !
Modifié par SolidSnake (24 Feb 2015 - 15:37)
SolidSnake m'a pris de court à propos du paramètre "forceShow". Il est mis sur "true" dans ton code.

@SolidSnake :
a écrit :
on est pas censé allé modifier le plugin s'il est bien fait
TOUT A FAIT D'ACCORD AVEC TOI !
SolidSnake spéciale dédicace Smiley cligne
Merci beaucoup ! Et merci aussi, bien sur, à iddsoft !

forceShow: false
c'est la réponse à mon problème.

Donc ticket résolu et vous êtes des chefs !

PS : en plus d'être nulle en JS je suis vraiment une brèle en anglais et même avec google trad Smiley ravi
sabrian a écrit :
en plus d'être nulle en JS je suis vraiment une brèle en anglais et même avec google trad Smiley ravi

Tu ne seras jamais aussi nulle que Google trad lui-même! Smiley ravi