app/assets/javascripts/cookies_eu.js in cookies_eu-1.5.2 vs app/assets/javascripts/cookies_eu.js in cookies_eu-1.6.0

- old
+ new

@@ -1,34 +1,50 @@ //= require js.cookie 'use strict'; -document.addEventListener('DOMContentLoaded', function() { +var cookiesEu = { + init: function() { + var cookiesEuOKButton = document.querySelector('.js-cookies-eu-ok'); - var cookiesEu = { - init: function() { - var cookiesEuOKButton = document.querySelector('.js-cookies-eu-ok'); + if (cookiesEuOKButton) { + this.addListener(cookiesEuOKButton); + } + }, - if (cookiesEuOKButton) { - this.addListener(cookiesEuOKButton); - } - }, + addListener: function(target) { + // Support for IE < 9 + if (target.attachEvent) { + target.attachEvent('onclick', this.setCookie); + } else { + target.addEventListener('click', this.setCookie, false); + } + }, - addListener: function(target) { - // Support for IE < 9 - if (target.attachEvent) { - target.attachEvent('onclick', this.setCookie); - } else { - target.addEventListener('click', this.setCookie, false); - } - }, + setCookie: function() { + Cookies.set('cookie_eu_consented', true, { path: '/', expires: 365 }); - setCookie: function() { - Cookies.set('cookie_eu_consented', true, { path: '/', expires: 365 }); + var container = document.querySelector('.js-cookies-eu'); + container.parentNode.removeChild(container); + } +}; - var container = document.querySelector('.js-cookies-eu'); - container.parentNode.removeChild(container); - } +(function() { + var isCalled = false; + + function isReady() { + if (isCalled) return; + isCalled = true; + + cookiesEu.init(); } - cookiesEu.init(); + if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', isReady, false); + } -}); + // Old browsers IE < 9 + if (window.addEventListener) { + window.addEventListener('load', isReady, false); + } else if (window.attachEvent) { + window.attachEvent('onload', isReady); + } +})();