javascript - Cookie 同意阻止其余的 JavaScript
问题描述
我从谷歌得到了这个库,这个 cookie 同意脚本。它运行良好,但问题是,除非您按下按钮并刷新页面,否则其余的 javascripts 将无法正常工作,因此我在手机上的导航无法正常工作,数据滚动动画也无法正常工作。这是代码。我不知道问题出在哪里,如果有人可以帮助我,我将不胜感激。祝你有美好的一天!
// --- Config --- //
var purecookieTitle = 'Cookies.'; // Title
var purecookieDesc =
'Acest website folosește cookie-uri pentru a vă îmbunătăți experiența. Folosind site-ul nostru web, sunteți de acord cu toate cookie-urilor în conformitate cu politica noastră de confidențialitate.'; // Description
var purecookieLink =
'<a href="politica-de-confidentialitate.html" target="_blank">Citesțe mai mult</a>'; // Cookiepolicy link
var purecookieButton = 'Am înțeles'; // Button text
// --- --- //
function pureFadeIn(elem, display) {
var el = document.getElementById(elem);
el.style.opacity = 0;
el.style.display = display || 'block';
(function fade() {
var val = parseFloat(el.style.opacity);
if (!((val += 0.02) > 1)) {
el.style.opacity = val;
requestAnimationFrame(fade);
}
})();
}
function pureFadeOut(elem) {
var el = document.getElementById(elem);
el.style.opacity = 1;
(function fade() {
if ((el.style.opacity -= 0.02) < 0) {
el.style.display = 'none';
} else {
requestAnimationFrame(fade);
}
})();
}
function setCookie(name, value, days) {
var expires = '';
if (days) {
var date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
expires = '; expires=' + date.toUTCString();
}
document.cookie = name + '=' + (value || '') + expires + '; path=/';
}
function getCookie(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) {
document.cookie = name + '=; Max-Age=-99999999;';
}
function cookieConsent() {
if (!getCookie('purecookieDismiss')) {
document.body.innerHTML +=
'<div class="cookieConsentContainer" id="cookieConsentContainer"><div class="cookieTitle"><a>' +
purecookieTitle +
'</a></div><div class="cookieDesc"><p>' +
purecookieDesc +
' ' +
purecookieLink +
'</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">' +
purecookieButton +
'</a></div></div>';
pureFadeIn('cookieConsentContainer');
}
}
function purecookieDismiss() {
setCookie('purecookieDismiss', '1', 14);
pureFadeOut('cookieConsentContainer');
}
window.onload = function () {
cookieConsent();
};
解决方案
以防万一其他人偶然发现此问题,问题出在这一行:
document.body.innerHTML +=
例如,如果你用这个替换它,它可以完美运行并且不会阻止任何其他 javascript,但显然你必须在页面的某个地方添加 id页脚
document.getElementById("footer").innerHTML+=
推荐阅读
- html - 根据表格行下载不同的pdf
- scala - 无法从 sbt 看到在 docker-compose 中设置的环境变量
- javascript - 使用 reactjs 进行电子邮件 otp 验证
- javascript - 如何在for循环中使用“点击功能”?
- javascript - Anychart cookie 问题,SameSite 属性
- java - 如何使用 glide 将图像放入 ImageView
- ruby-on-rails - 我应该在哪里创建创建后挂钩
- c# - 何时以及如何使用导体
- angular - Angular 9 服务的抽象类需要@injectable 装饰器吗?
- php - php搜索过滤器显示所有行而不过滤