我有一些页面,在最后一页上,我需要知道用户在最后两页上做了什么选择。像这样:
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等服务器端语言,另一种选择是在服务器上的用户会话中获取这些值。