使用javascript记住用户在前几页上所做的选择



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

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

示例:

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

b.html这是三个选择页面中的一个,用户有3-4个新的选择,可以访问不同的URL。我还需要以某种方式保存此选择以供以后使用。

示例:

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

c.html这是一个我需要知道用户先前做出了哪些选择的页面。如果用户想回到我的面包屑解决方案中,就可以链接回那些确切的页面。

示例:

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

我可以用javascript中的一些全局变量来实现这一点吗?或者我如何解决这个问题?

感谢

您可以使用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"];

WikipediasWebStorage文章将localStorage和sessionStorage之间的区别描述为:

本地存储中的数据是按域存储的(它可用于最初存储数据的域中的所有脚本),并在浏览器关闭后持续存在。会话存储是每个窗口的每页存储,并且限制在窗口的生存期内。会话存储旨在允许同一web应用程序的单独实例在不同的窗口中运行,而不会相互干扰,cookie不支持这种用例

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

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

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

您的Cookie将在当前浏览器的域的所有页面上可用。

示例:

//Page 1: Set cookie depending on user choice
$.cookie("choice1", ValueOfChoice1);
//Page 2: Get previous user choice
globalVariable1 = $.choice1("example");

如果您想了解有关如何使用cookie的更多详细信息,可以阅读使用jQuery设置cookie。

您可以使用localStorage或sessionStorage。

如果您使用PHP或Asp.Net等服务器端语言,另一种选择是在服务器上的用户会话中获取这些值。

相关内容

  • 没有找到相关文章

最新更新