-
-
Notifications
You must be signed in to change notification settings - Fork 372
Custom service allow FR
La fonction suivante s'exécute automatiquement lorsque l'utilisateur accepte les cookies :
"js": function () {
"use strict";
}
La première étape est donc de charger le script pour lequel l'utilisateur à donner son autorisation, pour cela il faut utiliser la fonction tarteaucitron.addScript().
Google AdSens est utilisé ici comme exemple mais ce n'est pas un tutoriel pour l'intégrer, Google AdSens est déjà présent par défaut dans les services de tarteaucitron, pour savoir comment l'ajouter simplement référé vous à la partie Ajouter un service intégré à tarteaucitron
Voici un exemple avec Google AdSens :
"js": function () {
"use strict";
tarteaucitron.addScript('//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');
}
Avec cette simple ligne, le script de google Adsens est chargé lorsque l'utilisateur accepte les cookies, les cookies déjà enregistrés sont également automatiquement supprimés si l'utilisateur change d'avis et décide de les refuser.
Si vous avez besoin de passer un paramètre dans l'URL du script et que ce paramètre et contenue dans une variable à laquel vous n'avez pas accès dans tarteaucitron, vous pouvez utiliser l'objet user
Bien sûr on peut également profiter de cette fonction pour faire tout un tas de tâche voulu au moment de l'acceptation des cookies.
Il reste cependant deux problèmes:
- Si l'utilisateur refuse les cookies alors la div qui contient notre bannière publicitaire (ou autre élément du script que vous avez charger) ne sert plus à rien.
- Et plus important encore, dans le cas où l'on est sencé récupéré une valeur du script chargé, cette valeur n'est pas accessible !
Pour le problème n°1 référé vous à la partie Fonction - cookies refusé
Pour le problème n°2, la réponse et ci-dessous. ;)
Dans le cas ou le script nous retourne une valeur, on ne récupère jamais cette valeur et on ne peut donc pas l'utiliser...
Pour pallier ce problème une solution très simple consiste à ajouter une fonction anonyme en toisième paramètre de tarteaucitron.addScript() dans laquelle la valeur retournée par l'api sera disponible, comme ceci :
"js": function () {
"use strict";
tarteaucitron.addScript('urlofyourapi.js', '', function () {
// Ici la valeur retourner par le script est disponible ! :D
});
}
A partir de là, deux solution sont à votre disposition :
- Ecrire directement votre code lié à l'api dans la fonction ici présente.
- Dans le cas ou le code est assez conséquent et que vous préférer le déplacer dans un fichier js séparé, vous pouvez continuer de lire la documentation :)
Tout d'abord, crée le fichier js dans lequelle vous voulez placer le code qui utilise l'api (pour l'exemple se sera "useapi.js").
Je préfére vous prévenir, abandonner d'appeler simplement votre fichier dans le html comme ceci :
<script type="text/javascript" src="/assets/js/useapi.js"></script>
Votre api ne sera pas accessible et même si vous la stockez dans l'objet user, cela ne fonctionnera pas car les fonctions de tarteaucitron s'exécute seulement après chargement complet de la page, vous obtiendrez donc une erreur.
Pour pallier ce souci vous pouvez tout simplement utiliser la fonction tarteaucitron.addScript() à nouveau comme ceci :
"js": function () {
"use strict";
tarteaucitron.addScript('urlofyourapi.js', '', function () {
// Ici la valeur retourner par le script est disponible ! :D
// et on appel notre script personnel !
tarteaucitron.addScript('/assets/js/useapi.js');
});
}
De cette façon vous lancer votre script "useapi.js" seulement après chargement de l'api et celui-ci auras également accès à la valeur récupérée par l'api "urlofyourapi.js" !
Dans le cas ou pour une quelconque raison, la valeur récupérée par l'api "urlofyourapi.js" n'est pas accessible dans le fichier "useapi.js", vous pouvez utiliser l'objet user comme ceci :
"js": function () {
"use strict";
tarteaucitron.addScript('urlofyourapi.js', '', function () {
// Ici la valeur retourner par le script est disponible ! :D
// on stocke la valeur retourner par le script dans l'objet user de tarteaucitron
// en imaginant que le script urlofyourapi.js nous donne l'objet yourapi
tarteaucitron.user.yourapi = yourapi;
// et on appel notre script personnel !
tarteaucitron.addScript('/assets/js/useapi.js');
});
}
Et dans notre fichier "useapi.js" :
var yourapi = tarteaucitron.user.yourapi;
console.log(yourapi);
// Ça fonctionne, j'ai accès à l'api !