使用javascript记住用户在之前页面上做出的选择?

时间:2013-08-14 08:50:15

标签: javascript html variables cookies global-variables

我有一些页面,在最后一页我需要知道用户在最后两页上做出了哪些选择。 像这样:

a.html 用户在这里有三个选择,将他/她带到不同的网址。我需要以某种方式保存这个选择并在以后使用它。

示例:

<script>globalVariable1="firstchoice"</script>

b.html 这是三个选择页面之一,在这里用户有3-4个新的选择,将他/她带到不同的网址。我还需要以某种方式保存此选项以供以后使用。

示例:

<script>globalVariable2="thirdchoice"</script>

c.html 这是我需要知道用户之前做出了哪些选择的页面。如果用户想要返回我的面包屑解决方案,则能够链接回那些确切的页面。

示例:

<script>
  if(globalVariable1 == "firstchoice"){
    //do this
  }
  if(globalVariable2 == "thirdchoice"){
    //do this
  }

</script>

我可以使用javascript中的一些全局变量来执行此操作,或者如何解决此问题?

由于

5 个答案:

答案 0 :(得分:3)

您必须存储Cookie才能跟踪用户的状态。试试cookie.js。它有一个非常简单的键值接口,您可以在其GitHub页面上阅读。

答案 1 :(得分:3)

您可以使用localStorage。即使您在页面之间导航,重新加载页面或关闭并重新打开浏览器,也会持久保存键/值对的浏览器API。

//setting a value
localStorage["foo"] = "bar";

//getting a value
var x = localStorage["foo"];

使用sessionStorage也可以。

//setting a value
sessionStorage["foo"] = "bar";

//getting a value
var x = sessionStorage["foo"];

维基百科Web Storage文章描述了localStorage和sessionStorage之间的区别:

放置在本地存储中的数据是每个域(它可用于最初存储数据的域中的所有脚本),并在浏览器关闭后保留。会话存储是每页每页,并且仅限于窗口的生命周期。会话存储旨在允许同一Web应用程序的不同实例在不同的窗口中运行而不会相互干扰,这是Cookie不能很好地支持的用例。

答案 2 :(得分:2)

网页是无状态的,因此您无法在页面之间共享全局JavaScript变量。

但是,您可以使用cookie的值为页面设置全局变量并包含模块。

您的Cookie将在您网域的所有网页上针对当前浏览器提供。

示例:

//Page 1: Set cookie depending on user choice
$.cookie("choice1", ValueOfChoice1);

//Page 2: Get previous user choice
globalVariable1 = $.choice1("example");

如果您想了解有关如何使用Cookie的详细信息,可以阅读Setting cookies with jQuery

答案 3 :(得分:2)

您可以使用localStorage或sessionStorage。

答案 4 :(得分:0)

如果您使用某些服务器端语言(如PHP或Asp.Net)的另一个选择是在服务器上的用户会话中查找这些值。