【问题标题】:Uncaught ReferenceError: Cookies is not defined (js-cookies)未捕获的 ReferenceError:未定义 Cookies (js-cookies)
【发布时间】:2019-11-28 17:46:37
【问题描述】:

我正在尝试将 cookie 值分配给变量,但收到错误:

Uncaught ReferenceError: Cookies is not defined

我已经尝试过var name = Cookies.get('name');,但我仍然遇到同样的错误。 This documentation 也声明使用上述方法。

然后我假设在执行此脚本时 cookie 值必须是未定义的,因此决定在尝试将其分配给 var 之前检查 cookie,如下所示:

(function($) {
  $(document).ready(function() {
    if (Cookies.get('name')) {
      var name = Cookies.get('name');
    }
  });
})(jQuery);

...但仍然看到相同的错误。想法?

【问题讨论】:

  • 该错误表示您没有正确下载并在您的页面中包含cookies.js库。
  • 还有var name = Cookies.get('name') || "";
  • 你可以使用这个库以外的一些其他功能,w3schools.com/js/js_cookies.asp
  • @NicolaeMaties 不是推荐的资源。 <script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.2.1/js.cookie.min.js"></script> - documentation

标签: javascript jquery cookies


【解决方案1】:

您的脚本可能在 cookie API 未完全加载到浏览器之前加载,这样会报错。

使用以下内容,让我知道它是否适合您:

function loadJs(id, url = null, inlineScript = null, callback){
    var e = document.createElement('script');

    if (url) 
        e.src = url;

    if (inlineScript)
        e.appendChild(document.createTextNode(inlineScript));

    e.type = 'text/javascript';
    e.id = id;
    e.defer = true;
    e.addEventListener('load', callback);
    document.getElementsByTagName('head')[0].appendChild(e);
}


loadJs("cookies-api","https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.2.1/js.cookie.min.js", null, function(){
    if (Cookies.get('name')) {
        var name = Cookies.get('name');
    }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2023-01-23
    • 2014-05-27
    • 2016-11-03
    • 2011-01-05
    • 2016-01-02
    • 2013-10-06
    相关资源
    最近更新 更多