【问题标题】:Getting jquery.cookie.js to read a cookie and redirect让 jquery.cookie.js 读取 cookie 并重定向
【发布时间】:2013-01-06 07:19:34
【问题描述】:

我对 jQuery 很陌生,我正在尝试让 jQuery 插件 jquery.cookie.js 编写一个 cookie,然后根据 cookie 值进行重定向。以下是我要完成的工作的概要:

在登陆启动页面后,用户会选择他们的语言偏好。他们还可以选中“记住我”复选框,该复选框将 cookie lang-pref 写入值为enfr。以后访问时,访问者会被重定向到英文主页或法文主页。

这是我编写 cookie 的代码:

$(function() 
{
    $("#en").change(function() //#en is the id of the checkbox
    {
        if ($(this).is(":checked"))
        $.cookie('mem', 'en', { expires: 3652 }); // mem is the cookie name, en is the value
    })
});

这是读取 cookie 的代码,我有理由确定我搞砸了,因为重定向不起作用。不过,我不确定如何解决它:

$(function() {
    if ($.cookie('mem'))
    $(location).html ("window.location.href = 'http://www.mysite.com/home-en.php'");
});

我已经查看了这个插件的文档,但我仍然不确定如何使用实际 cookie 的值来执行操作:例如,on the project's GitHub page 给出的示例显示了如何读取 cookie,只是通过做我在上面的代码中所做的事情。

长话短说,我不知道如何读取 cookie 的 ,然后使用该值执行重定向。

【问题讨论】:

    标签: jquery jquery-cookie


    【解决方案1】:

    过度烹饪的简单案例

    $(function() {
        if ($.cookie('mem')) window.location.href = 'http://www.mysite.com/home-en.php';
    });
    

    【讨论】:

    • 现在就像一个魅力。谢谢!
    【解决方案2】:

    cookie 的值由$.cookie('mem') 返回。要考虑英语和法语重定向(或任何未来的语言值),您可以执行以下操作:

    $(document).ready(
         function() {
             var language_preference = $.cookie('mem');
             if (language_preference) {
                 window.location.href = 'http://www.mysite.com/home-'+language_preference+'.php';
             }
         }
    );
    

    但是,请注意这种语言检测和重定向通常在服务器端完成。在 PHP 中,设置 cookie 后,可以在全局变量$_COOKIE 中访问它。请参阅PHP Manual 中的文档。

    例如,您可以使用 PHP 在服务器端执行此操作,而不是在另一个页面的 JS 中执行重定向:

    if ($_COOKIE['mem']) :
        header('Location: http://www.mysite.com/home-'.$_COOKIE['mem'].'.php');
        exit;
    endif;
    

    这种方法的主要优点是用户只需通过一个启动页面即可到达主页,而不是两个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 2011-08-26
      • 1970-01-01
      相关资源
      最近更新 更多