【问题标题】:Redirect a user to a URL from input, store in cookie将用户从输入重定向到 URL,存储在 cookie 中
【发布时间】:2015-07-06 12:23:41
【问题描述】:

我正在处理一个项目,其中用户被发送到他们在输入中输入的目录名称,如下所示:

function sendanswer(e) {
if (e.keyCode === 13) {
    e.preventDefault();
    var answer = document.answerarea.input.value;
    if (answer) {window.location.href = answer;}
}
}

document.answerarea.input.onkeypress = sendanswer;

这很好用。但是现在我希望用户在每次访问页面时自动重定向到他们指定的目录,但前提是他们在导航到目录后没有收到 404 错误。我想这可以通过在访问 404 页面时擦除 cookie 来完成。

但是重定向到 cookie 的过程是如何工作的呢?

【问题讨论】:

  • 好吧,使用自定义 404 页面(Apache/IIS 都支持)并在其中编写代码以清除与目录路径相关的 cookie。
  • 但是如何将输入存储在 cookie 中并稍后重定向到?

标签: javascript html cookies input


【解决方案1】:

当您从使用中获取输入时,使用此代码设置 cookie:

function sendanswer(e) {
  if (e.keyCode === 13) {
      e.preventDefault();
      var answer = document.answerarea.input.value;
      if (answer) {
         window.location.href = answer;
         //SET COOKIE WITH NAME redirectPath
         document.cookie="redirectPath="+ answer;
      }
  }
}

现在在您的主页(用户访问您网站的页面)添加以下调用页面加载:

window.onload=function(){
    var kuki = "redirectPath=";//NAME OF COOKIE WE SET
    var cookies = document.cookie.split(';');
    for(var i=0;i < cookies.length;i++) {
        var c = cookies[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(kuki) == 0){
           var path = c.substring(kuki.length,c.length);
           //MOVE USER TO STORED PATH
           document.location.href=path;
        }
    }   

}

更好的方法是在服务器端读取 cookie 并将用户从那里重定向到他们最喜欢的文件夹。

更多参考请查看this答案。

【讨论】:

  • 谢谢!经过一些测试,这似乎不起作用,但我在 localhost 上运行。如果我把它放到网上,我看看这是否有效。
  • 您遇到什么错误?您是否检查过 dev-console/firebug 并尝试单步执行代码设置/读取 cookie?
  • 我没有收到任何错误,但该页面似乎没有设置任何 cookie。
  • 这几乎可以工作! cookie 已设置,但重定向不起作用。我收到错误ncaught ReferenceError: nameEQ is not definedwindow.onload @ main.js:21
  • 已修复!!!抱歉,从 quirks-mode 页面获取了代码,却忘了全部修复。但请务必阅读链接的其他 SO 答案并阅读有关 JS 的内容。这很简单,很容易修复。希望没有浪费你的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2019-07-07
  • 1970-01-01
  • 2017-04-19
  • 2014-04-10
  • 1970-01-01
  • 2021-01-07
相关资源
最近更新 更多