Advertisement
nicolaslagios

Rolex Corner Vanilla JS 2023 Cookiebot Script

Nov 8th, 2023 (edited)
933
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.76 KB | Source Code | 0 0
  1. /* ---- Rolex Corner Cookiebot Concent Script 2023 ----
  2. #### Rocket Path P.C. #### */
  3. function CookiebotOnAcceptListenerFunction(e) {
  4.     // Έλεγχος αν το cookie "rlx-once" είναι "true"
  5.     if (getCookie("rlx-once") === "true") {
  6.         return; //αν ναι τότε σταμάτα την διαδικασία της function
  7.     }
  8.  
  9.     // Αλλιώς έλεγχος αν το iframe με id "rlx-corner" υπάρχει
  10.     var rlxCorner = document.getElementById("rlx-corner");
  11.     if (rlxCorner) {
  12.         if (Cookiebot.consent.marketing) {
  13.             // Αν έχει γίνει αποδοχή των cookies του marketing τότε:
  14.             postMessageToIframe(rlxCorner, "consentTrue");
  15.             postMessageToIframe(rlxCorner, "consentValidation");
  16.             setCookie("rlx-consent", true);
  17.             setCookie("rlx-once", true);
  18.         } else {
  19.             // Διαφορετικά:
  20.             postMessageToIframe(rlxCorner, "consentFalse");
  21.             setCookie("rlx-consent", false);
  22.             setCookie("rlx-once", false);
  23.         }
  24.     }
  25. }
  26. window.addEventListener("CookiebotOnAccept", CookiebotOnAcceptListenerFunction); //και το listener για άμεσο έλεγχο
  27.  
  28. function CookiebotOnDeclineListenerFunction(e) {
  29.     // έλεγχος αν το iframe με id "rlx-corner" υπάρχει
  30.     var rlxCorner = document.getElementById("rlx-corner");
  31.     if (rlxCorner) {
  32.         postMessageToIframe(rlxCorner, "consentFalse");
  33.         setCookie("rlx-consent", false);
  34.         setCookie("rlx-once", false);
  35.     }
  36. }
  37. window.addEventListener("CookiebotOnDecline", CookiebotOnDeclineListenerFunction);
  38.  
  39. // Ελεγχος αν jQuery και "rlx-corner" υπάρχουν
  40. if (typeof jQuery !== "undefined" && jQuery("#rlx-corner").length > 0) {
  41.     setCookie("rlx-consent", false);
  42.  
  43.     // Έλεγχος αν το "CookieConsent" υπάρχει
  44.     if (getCookie("CookieConsent")) {
  45.         var cookieStr = getCookie("CookieConsent"); //παίρνει το περιεχόμενο
  46.         cookieStr = cookieStr.slice(1, -1); //αφαίρεί το brackets {}
  47.         var cookieArr = cookieStr.split(","); //μετατροπή σε array είτε υπάρχει split comma είτε όχι
  48.         var cookieObj = {};
  49.  
  50.         // Δημιουργία υποarrays - objects για κάθε array item
  51.         cookieArr.forEach(function (item) {
  52.             var parts = item.split(":");
  53.             cookieObj[parts[0]] = parts[1];
  54.         });
  55.  
  56.         // Έλεγχος αν το marketing consent είναι true, και κάνει τα cookies true αντίστοιχα
  57.         if (cookieObj.marketing === 'true') {
  58.             setCookie("rlx-consent", true);
  59.             setCookie("rlx-once", true);
  60.         }
  61.     } else {
  62.         // Αν δεν υπάρχει το "CookieConsent" cookie τότε τα κάνει false
  63.         setCookie("rlx-consent", false);
  64.         setCookie("rlx-once", false);
  65.     }
  66. }
  67.  
  68. // Υπόλοιπη διαδικασία χωρίς comments
  69. if (document.getElementById("rlx-corner") && getCookie("rlx-consent") === "true") {
  70.     var rlxCorner = document.getElementById("rlx-corner");
  71.     if (rlxCorner) {
  72.         postMessageToIframe(rlxCorner, "consentTrue");
  73.         postMessageToIframe(rlxCorner, "consentValidation");
  74.     }
  75. }
  76.  
  77. function getCookie(name) {
  78.     var value = "; " + document.cookie;
  79.     var parts = value.split("; " + name + "=");
  80.     if (parts.length === 2) return parts.pop().split(";").shift();
  81. }
  82.  
  83. function setCookie(name, value) {
  84.     document.cookie = name + "=" + value + "; path=/";
  85. }
  86.  
  87. function postMessageToIframe(iframe, message) {
  88.     if (iframe && iframe.contentWindow) {
  89.         iframe.contentWindow.postMessage(message, "https://corners.rolex.com");
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement