0

我需要编写一个使用 Accordion 的 jQuery 向导。它将包括 4 个步骤。一切正常,但有一个要求是“如果用户关闭浏览器并在第四步中失去其在向导中的位置,他们可以返回向导并通过单击直接导航到第四步'Step 4' 手风琴”。我的理解是,当浏览器关闭时,用户可以在重新打开浏览器时进入最后的第四步。在 jQuery 或 javascript 中怎么可能,因为根据我的说法,当浏览器重新打开时,DOM 将从头开始生成,所有的东西也将从头开始加载...... 任何人都可以帮助我,因为这看起来危急。任何帮助将不胜感激.......

4

2 回答 2

0

实际上是的,这是可以做到的。您可以在 URL 中更改井号标记以指定您在向导中的位置。

wwww.example.com/mywizard.html#hashtag

这也可以有一个 json 对象来存储大量数据 encodeURI 函数接受一个格式化为 URL 的字符串,JSON.stringify 将接受一个对象并将其转换为 JSON 代码:(每次需要更新时都应该这样做应用程序的状态。

var wizardData = {"MyProperty":"MyValue"};
var myhash = encodeURI(JSON.stringify(wizardData));
location.hash = myhash;

给你一个这样的 URL:

wwww.example.com/#%7B%22MyProperty%22:%22MyValue%22%7D

要取出对象,请再次使用 location.hash:您必须对 URL 进行解码,然后将其转回 Javascript 对象。(这可能会在页面加载和 window.onhashchange 事件时完成。

document.onload = window.onhashchange = function() {
 var myhash = location.hash;
 //The hash always has the "#" in front, so we need to remove that.
 myhash = myhash.substr(1);
 var wizardData = JSON.parse(decodeURI(myhash));
 //Change the app to reflect the changes to the data
}

页面更改时不会重新加载。如果您以这种方式映射所有向导信息,您可能不需要任何其他逻辑来更新 gui。如果您确实想手动更新您的 gui,请删除设置 window.onhashchange 的部分。

于 2013-05-30T05:01:00.180 回答
0

仅使用 JQuery/JavaScript 无法完成此任务。您需要考虑像 cookie 这样的持久解决方案。随着用户完成向导,您需要将当前位置保存到 cookie。当用户返回您的网站时,只需读取 cookie 并呈现相应的向导页面和/或元素。

请参阅这篇关于在 JavaScript 中使用 cookie 的帖子:

如何使用 jQuery 设置/取消设置 cookie?

于 2013-05-30T05:06:42.667 回答