gpt4 book ai didi

JavaScript 欧盟 cookie 法横幅未删除

转载 作者:行者123 更新时间:2023-11-30 00:22:48 28 4
gpt4 key购买 nike

我一直在尝试将欧盟 cookie 政策横幅添加到我的网站。下面的 javascript 代码插入横幅(一旦我添加了一点样式)但是当我单击“x”关闭横幅并希望将其隐藏以供将来访问时,没有任何反应。横幅不会消失。

谁能告诉我为什么这不起作用? Javascript 不是我的强项!

//Cookie banner

var dropCookie = true; // false disables the Cookie, allowing you to style the banner
var cookieDuration = 14; // Number of days before the cookie expires, and the banner reappears
var cookieName = 'complianceCookie'; // Name of our cookie
var cookieValue = 'on'; // Value of cookie

function createDiv(){
var bodytag = document.getElementsByTagName('body')[0];
var div = document.createElement('div');
div.setAttribute('id','cookie-law');
div.innerHTML = '<p>Our website uses cookies. By continuing we assume your permission to deploy cookies, as detailed in our <a href="/privacy-cookies-policy/" rel="nofollow" title="Privacy &amp; Cookies Policy">privacy and cookies policy</a>. <a class="close-cookie-banner" href="javascript:void(0)" onclick="removeMe()"><span>X</span></a></p>';
// Be advised the Close Banner 'X' link requires jQuery

// bodytag.appendChild(div); // Adds the Cookie Law Banner just before the closing </body> tag
// or
bodytag.insertBefore(div,bodytag.firstChild); // Adds the Cookie Law Banner just after the opening <body> tag

document.getElementsByTagName('body')[0].className+=' cookiebanner'; //Adds a class tothe <body> tag when the banner is visible

createCookie(window.cookieName,window.cookieValue, window.cookieDuration); // Create the cookie
}


function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
if(window.dropCookie) {
document.cookie = name+"="+value+expires+"; path=/";
}
}

function checkCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)===' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

function eraseCookie(name) {
createCookie(name,"",-1);
}

window.onload = function(){
if(checkCookie(window.cookieName) !== window.cookieValue){
createDiv();
}
};

function removeMe(){
var element = document.getElementById('cookie-law');
element.parentNode.removeChild(element);
};

谢谢!

最佳答案

函数 removeMeonclick 处理程序的当前范围内是 undefined。要解决此问题,您应该将此行 function removeMe() { 替换为 window.removeMe = function removeMe() {

实例(带格式化代码):https://jsfiddle.net/xnhpzto8/1/

关于JavaScript 欧盟 cookie 法横幅未删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com