在点击时创建和保存 Cookie

create and save cookies on onclick

本文关键字:保存 Cookie 创建      更新时间:2023-09-26

谁能帮我设置一个cookie功能,可以通过检查用户点击的链接来获取用户输入,然后将他们重定向到该链接并为其创建一个cookie,以便下次用户来时,他们会自动被重定向。

谁能告诉我我做错了什么。我想要多个链接,单击每个链接应该创建一个cookie并重定向用户。

任何人都可以提供一个工作 jsFiddle 请。

代码如下,请帮助:

  //Html
  <a href="" onClick="redirectOne('/home')">something site</a> 
  <a href="" onClick="redirectTwo('/home')">something2 site</a>
  // Javascript
  function redirectOne(state)
  {
    createCookie('state', state, 90);
    window.location.href = "www.something1.com" + state;
  }
  function redirectTwo(state)
  {
    createCookie('state', state, 90);
    window.location.href = "www.something2.com" + state;
  }
  var cookie = readCookie('state');
  if (cookie != null) 
  {
    window.location.href = "www.something.com" + cookie;
  }
 function createCookie(name,value,days) {
 if (days) 
   {
     var date = new Date();
     date.setTime(date.getTime()+(days*24*60*60*1000));
     var expires = "; expires="+date.toGMTString();
   }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
 }
 function readCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
     return null;
}
function eraseCookie(name) {
   createCookie(name,"",-1);
 }

你的问题是,当你在每个函数中调用这一行时

 createCookie('state', state, 90);

它从 onClick 事件中获取"/home"的值,并将其传递给 cookie 创建例程。 您应该为这两个函数传递"/home"以外的内容。

  <a href="" onClick="redirectOne("www.something1.com")">something site</a> 
  <a href="" onClick="redirectOne("www.something2.com")">something2 site</a>
  // Javascript
  function redirectOne(state)
  {
    createCookie('state', state, 90);
    window.location.href = state+'/home';
  }

您根本不需要重定向两个功能。