script.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. document.addEventListener('DOMContentLoaded', function () {
  2. var cookieNotice = document.getElementById('cookie-notice');
  3. var acceptCookies = document.getElementById('accept-cookies');
  4. var rejectCookies = document.getElementById('reject-cookies');
  5. // 检查Cookie
  6. function checkCookie() {
  7. var cookieAccepted = getCookie('cookieAccepted');
  8. var cookieRejected = getCookie('cookieRejected');
  9. if (cookieAccepted === 'true') {
  10. // 如果接受了Cookie,则不显示通知
  11. cookieNotice.style.display = 'none';
  12. } else if (cookieRejected === 'true') {
  13. // 如果拒绝了Cookie,则显示通知,但设置一天后再次询问
  14. setTimeout(function () {
  15. cookieNotice.style.display = 'block';
  16. }, 24 * 60 * 60 * 1000); // 24小时后显示
  17. } else {
  18. // 如果没有Cookie,则立即显示通知
  19. cookieNotice.style.display = 'block';
  20. }
  21. }
  22. // 接受Cookie
  23. acceptCookies.addEventListener('click', function () {
  24. setCookie('cookieAccepted', 'true', 365);
  25. cookieNotice.style.display = 'none';
  26. });
  27. // 拒绝Cookie
  28. rejectCookies.addEventListener('click', function () {
  29. setCookie('cookieRejected', 'true', 1);
  30. cookieNotice.style.display = 'none';
  31. });
  32. // 设置Cookie
  33. function setCookie(name, value, days) {
  34. var expires = "";
  35. if (days) {
  36. var date = new Date();
  37. date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  38. expires = "; expires=" + date.toUTCString();
  39. }
  40. document.cookie = name + "=" + (value || "") + expires + "; path=/";
  41. }
  42. // 获取Cookie
  43. function getCookie(name) {
  44. var nameEQ = name + "=";
  45. var ca = document.cookie.split(';');
  46. for (var i = 0; i < ca.length; i++) {
  47. var c = ca[i];
  48. while (c.charAt(0) == ' ') c = c.substring(1, c.length);
  49. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  50. }
  51. return null;
  52. }
  53. // 检查Cookie并显示/隐藏通知
  54. checkCookie();
  55. });