javascript - 设置 cookie 不适用于 Javascript 或 jQuery

标签 javascript jquery cookies onclick jquery-events

我的问题是通过点击按钮来设置 cookie 是行不通的。我用 3 种不同的方式对其进行了测试。

HTML:

<!DOCTYPE html>
<html dir="ltr">
    <head> [...]
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script>
        <script src="/cookies/js/jquery.cookie.js"></script>
        <script>
            document.getElementById('btnSetCookie').onclick = function () {
                $.cookie('cookie-1', 'true');
                alert('You have set the cookie: ' + jQuery.cookie('cookie-1'));
            });
            $(function () {
                $("#btnSetCookie").click(function () {
                    jQuery.cookie('cookie-2', 'true');
                    alert('You have set the cookie: ' + jQuery.cookie('cookie-2'));
                });
            });
            $(document).ready(function () {
                $("#btnSetCookie").on('click', function () {
                    $.cookie('cookie-3', 'true');
                    alert('You have set the cookie: ' + jQuery.cookie('cookie-3'));
                });
            });
        </script>
    </head>
    <body> [...]
        <button id="btnSetCookie">set cookie</button> [...]
    </body>
</html>

知道我的错误是什么吗?

最佳答案

这对您不起作用的原因是,如果您不在服务器上运行,则无法设置 cookie。 换句话说,如果您在本地浏览器中使用 file://提供文件,它根本无法工作。

您的第二个和第三个选项都运行良好。我会清理它们并始终如一地使用 $ 或 jQuery,但两者都在服务器上运行时工作。

这是一个 demo 您的代码有效。

$(document).ready(function () {
  $("#btnSetCookie").on('click', function () {
    $.cookie('cookie-3', 'true');
    alert('You have set the cookie: ' + $.cookie('cookie-3'));
  });
});

您还可以考虑使用更新版本的 jQuery 以及您正在使用的插件(您正在使用的版本不再维护)。事实上,新版本的插件根本不再依赖于 jQuery。

关于javascript - 设置 cookie 不适用于 Javascript 或 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49070213/

相关文章:

javascript - AngularJS ng-重复二维数组并根据索引仅显示某些值

javascript - 我们可以找到 2 个类(class)吗?

javascript - 在javascript中从数组生成多级对象

javascript - 根据滚动位置触发视频自动播放

php - 还记得我 JavaScript 吗?

javascript - 我无法使用 AngularJS 的 $cookies.get ('key' ) 获取 cookie

session - 基于 cookie 的 session 管理中的身份验证和加密 key

javascript - 使用 puppeteer 的提示

javascript - .is (':visible' 的 JQuery if 语句)不起作用

javascript - 由于未定义系列,Highcharts 最近点工具提示未显示