1

I have some pages, on the last page I need to know what choices a user made on the two last pages. Like this:

a.html User has three choices here that takes him/her to different urls. I need to somehow save this choice and use it later.

Example:

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

b.html This is one of three choices page and here the User have 3-4 new choices that takes him/her to different urls. I also need to save this choice somehow for later use.

Example:

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

c.html This is the page where I need to know what choices the user has made earlier. To be able to link back to those exact pages if the user wants to go back in my breadcrumb-solution.

Example:

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

</script>

Can I do this with some global variables in javascript or how can I solve this?

Thanks

4

5 回答 5

4

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

Wikipedias Web Storage文章将 localStorage 和 sessionStorage 之间的区别描述为:

放置在本地存储中的数据是每个域的(它对最初存储数据的域中的所有脚本都可用),并且在浏览器关闭后仍然存在。会话存储是每页每窗口的,并且仅限于窗口的生命周期。会话存储旨在允许同一 Web 应用程序的不同实例在不同的窗口中运行,而不会相互干扰,这是 cookie 不太支持的用例。
于 2013-08-14T09:01:03.733 回答
3

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

于 2013-08-14T08:53:27.890 回答
2

您可以使用 localStorage 或 sessionStorage。

于 2013-08-14T09:01:00.607 回答
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 的更多详细信息,可以阅读使用 jQuery 设置cookie。

于 2013-08-14T08:54:04.507 回答
0

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

于 2013-08-14T08:55:47.500 回答