2

我一直在尝试设置一个非常简单的 cookie,以查看用户是否单击了 cookie 同意横幅。我正在尝试将 cookie 设置为将来的到期日期,这样用户就不会在每次访问时都收到此消息。它可以设置 cookie,但它只为当前会话设置它。在 IE11 中,它根本不起作用。

我的 JavaScript 是:

在 custom.js 中:

import Cookies from 'js.cookie';

// Hide cookie disclaimer on agreement
$('.cookies-disclaimer button').on('click', function() {
  $('.cookies-disclaimer').hide();
  Cookies.set('cookies_consent', true, { expires: 365, sameSite: 'strict' });
});

// Check if the cookie disclaimer has already been accepted
function hideAlreadyAcceptedCookieDisclaimer() {
  var consent = Cookies.get('cookies_consent');
  if (!consent) {
    $('.cookies-disclaimer').show();
  }
}
hideAlreadyAcceptedCookieDisclaimer();

在我的 application.js 中,我需要来自 node_modules 的 js 文件:

require('js-cookie/src/js.cookie')
...
require('custom')
4

1 回答 1

2

更新:

问题似乎出在我导入文件的方式上:

  1. import Cookies from 'js.cookie';从 custom.js中删除
  2. 在我的 application.js 中,我添加了库window.Cookies = require('js-cookie/src/js.cookie')

这篇文章的所有学分帮助我:https : //discuss.rubyonrails.org/t/js-cookie/73808 和他的原始博客文章:https ://translate.google.com/translate?hl=&sl=ru&tl= zh&u=https%3A%2F%2Ftheglitchy.com%2Fn%2Fkak-ustanovit-js-cookie-na-rails-6-yarn-webpack

于 2020-04-14T19:33:30.663 回答