/** * EXAMPLE 1: * * <html lang="en" ... > * ... * <script * id="cookieWarn" * data-lang-en="{ * 'text': 'Our website uses cookies.', * 'more_text': 'Click here for more information', * 'more_link': 'http://ec.europa.eu/ipg/basics/legal/cookies/index_en.htm', * 'accept_text': 'I accept', * 'reject_text': 'I reject', * 'reject_info': 'You can disable unwanted cookies by using this program', * 'reject_link': 'https://www.ghostery.com/' * }, * }" * data-expire="365" (optional, default 365 day) * data-domain="*.domain.tld" (cookie domain, optional) * data-path="/" (cookie path, optional) * data-secure="true" (cookie secure, true / false, optional) * data-delay="750" (optional, default 500) * data-class="customCookieWarning" (optional) * data-style="#cookieWarnBox a { color: #ff0000; }" (optional) * type="text/javascript" * src="../cookie-warn.min.js"> * </script> * * EXAMPLE 2: * * <html lang="en" ... > * ... * <script type="text/javascript" src="../cookie-warn.min.js"></script> * * <div * id="cookieWarn" * data-lang-en="{ * 'text':'Our website uses cookies.', * 'accept_text':'I accept', * 'more_text':'Click here for more information', * 'more_link':'http://ec.europa.eu/ipg/basics/legal/cookies/index_en.htm' * }" * data-lang-hu="{ * 'text':'Weboldalunk sütiket használ.', * 'accept_text':'Elfogadom', * 'more_text':'Kattints ide a bÅ‘vebb információért', * 'more_link':'http://ec.europa.eu/ipg/basics/legal/cookies/index_en.htm' * }"> * </div> * */ (function (fn) { "use strict"; // set or get cookie var cookie = function (name, value, days, path, domain, secure) { if (value === undefined) { var i, x, y, cookies = document.cookie.split(";"); for (i = 0; i < cookies.length; i++) { x = cookies[i].substr(0, cookies[i].indexOf("=")); y = cookies[i].substr(cookies[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x == name) { return y; } } } else { days = days ? days : 365; var expire = new Date(); expire.setDate(expire.getDate() + days); var values = []; if (days !== undefined && days !== null) { values.push("expires=" + expire.toGMTString()); } if (path !== undefined && path !== null) { values.push("path=" + path); } if (domain !== undefined && domain !== null) { values.push("domain=" + domain); } if (secure !== undefined && secure !== null && secure) { values.push("secure"); } if (values.length > 0) { value = value + "; " + values.join("; "); } document.cookie = escape(name) + "=" + value; } }; // if cookie available then return if (cookie(fn)) { return; } // warning box close function window[fn] = { close: function (expire, path, domain, secure) { // set the cookie cookie(fn, true, expire, path, domain, secure); // remove warning box var wbox = document.getElementById(fn + 'Box'); wbox.className = wbox.className + ' closed'; }, reject: function () { // show reject information var wbox = document.getElementById(fn + 'Box'); wbox.className = wbox.className + ' reject'; } }; var warn = function () { // get parameters var tag = document.getElementById('cookieWarn'); if (!tag) { console.error('cookieWarn element not found by id'); return; } var lang = document.documentElement.lang; var data = JSON.parse(tag.getAttribute('data-lang-' + lang).replace(/'/g, '"')); if (!data) { return; } var delay = parseInt(tag.getAttribute('data-delay')); var domain = tag.getAttribute('data-domain'); var path = tag.getAttribute('data-path'); var secure = tag.getAttribute('data-secure'); var expire = parseInt(tag.getAttribute('data-expire')); var style = tag.getAttribute('data-style'); var classes = tag.getAttribute('data-class'); var bootstrap = (window.jQuery && typeof $().modal == 'function'); var css = { style: [ '#' + fn + 'Box {transition:all 0.4s ease-in-out;position:fixed;z-index:999999;bottom:-20px;left:0;right:0;opacity:0;text-align:center;padding:10px;background-color:#212121}', '#' + fn + 'Box .btn {white-space:nowrap}', '#' + fn + 'Box .reject_more {padding:0px 10px;display:none;}', '#' + fn + 'Box.reject .reject_more {display:block;}', '#' + fn + 'Box.loaded {opacity:0.9;bottom:0px}', '#' + fn + 'Box.closed {opacity:0;bottom:-20px}' ], style2: [ '#' + fn + 'Box {font-family: Verdana;line-height:24px;color:#f1f1f1;font-size:14px;}', '#' + fn + 'Box .btn {text-transform:uppercase;cursor:pointer;background-color:#f1f1f1;color:#659fda;padding:3px 14px;margin-left:10px;}', '#' + fn + 'Box .btn:hover {background-color:#ffffff;color:#4d78a5;}', '#' + fn + 'Box a {text-decoration:none;color:#659fda}', ], type: 'text/css', element: document.createElement('style'), append: function () { if (!bootstrap) { this.style = this.style.concat(this.style2); } this.element.type = this.type; this.element.appendChild(document.createTextNode(this.style.join(' '))); document.head.insertBefore(this.element, document.head.childNodes[0]); } }; css.append(); // create warning box var wbox = document.createElement('div'); wbox.setAttribute("id", fn + "Box"); if (classes) { wbox.setAttribute("class", classes); } var args = [ expire ? expire : 'null', path ? "'" + path + "'" : '/', domain ? "'" + domain + "'" : 'null', secure == "true" ? 1 : 0, ].join(','); var info = (data.more_link && data.more_text) ? ' <a target="_blank" href="' + data.more_link + '">' + data.more_text + '</a> ' : ''; var accept_button = '<span class="btn btn-default" id="' + fn + 'Close" onclick="' + fn + '.close(' + args + ');">' + data.accept_text + '</span>'; if (data.reject_text) { var reject_button = '<span class="btn btn-warning" onclick="' + fn + '.reject();">' + data.reject_text + '</span>'; var reject_content = '<span class="reject_more">' + data.reject_info + ' <a target="_blank" href="' + data.reject_link + '">' + data.reject_link + '</a></span>'; } else { var reject_button = ''; var reject_content = ''; } wbox.innerHTML = '<div class="text">' + data.text + info + accept_button + reject_button + reject_content + '</div>'; // append to body var body = document.getElementsByTagName("body")[0]; body.appendChild(wbox); setTimeout(function () { wbox.className = wbox.className + ' loaded'; }, delay ? parseInt(delay) : 500); } var isDOMready = function(){ if (document.readyState == 'complete') { warn(); } else { setTimeout(function () { isDOMready(); }, 1000); } }; isDOMready(); })('cookieWarn');
From https://www.cssscript.com/responsive-eu-cookie-law-alert-bar-cookie-warn/
Travelled to 6 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1021514 |
Snippet name: | cookie-warn.js |
Eternal ID of this version: | #1021514/2 |
Text MD5: | 40223140496ade9b60ac6dea69d96df0 |
Author: | stefan |
Category: | javax / html |
Type: | Document |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2019-02-16 00:09:44 |
Source code size: | 8476 bytes / 252 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 239 / 185 |
Version history: | 1 change(s) |
Referenced in: | [show references] |