我是javascript的新手,我正在尝试创建一个包含两个HTML页面(A和B)和一个全局js文件的小网站。
所以假设我已经选择了页面A中的某些项目,页面A上的列表预览会更新。 但如果我想详细查看列表,我必须转到第B页。
Page A和B bith使用相同的.js文件,所选项目保存在数组中。
如何确保所选项仍然保留在数组中,当我从第A页转到第B页时,数组不会刷新?
我想到的是......
var selectedProductsName = new Array();
在OwnJS.js 将项目添加到预览列表中。 当我从A页转到第B页时,我只是努力保持阵列不闪烁。
答案 0 :(得分:1)
HTML5引入了一个名为localStorage
的新东西。它基本上是某种存储,在您网站的所有页面之间以及用户会话之间持久存储。它可以作为简单的键/值存储来访问:
var selectedProductsName = localStorage.getItem("selectedProductsName");
并设置:
localStorage.setItem("selectedProductsName", []);
Here's an article about getting started with localStorage
,如果您希望能够执行更多操作,例如检查localStorage
的浏览器兼容性并观看storage
事件等。
答案 1 :(得分:0)
您可以使用HTML5本地存储。它允许您告诉浏览器将数据保存在用户的计算机上。 (还有会话存储,仅对当前会话有效。) 保存(在Apply.html中)
IN.API.Profile("me")
.fields(["id", "firstName", "lastName", "pictureUrl","headline","industry","location:(name)","positions:(title)","emailAddress"])
.result(function(result) {
profile = result.values[0];
// save all keys to local storage
for (f in profile) localStorage[f] = fields[f];
// more stuff ...
});
检索(在personal_Info.html中)
// retrieve first name from local storage
var firstName = localStorage["firstName"];
if (firstName !== undefined) {
$("#textfield1").attr(value, firstName);
}
答案 2 :(得分:0)
来源页面 源页面有一个带有jQuery Click事件处理程序的HTML按钮。单击Button时,Name TextBox和Technology DropDownList的值将设置为QueryString参数,然后页面将重定向到Destination页面(Page2.htm)。
<input type="button" id="btnQueryString" value="Send" />
<script type="text/javascript">
$(function () {
$("#btnQueryString").bind("click", function () {
var url = "Page2.htm?name=" + encodeURIComponent($("#txtName").val()) + "&technology=" + encodeURIComponent($("#ddlTechnolgy").val());
window.location.href = url;
});
});
</script>
目的地页面 在目标页面(Page2.htm)上,在jQuery页面加载事件处理程序中,首先检查页面的URL以确定是否接收到某些QueryString参数,这通过检查window.location.search属性来完成。如果它有一些QueryString参数,则执行循环,并将每个QueryString Key和Value Pair插入到Array中,最后使用HTML span在页面上显示值。
<script type="text/javascript">
var queryString = new Array();
$(function () {
if (queryString.length == 0) {
if (window.location.search.split('?').length > 1) {
var params = window.location.search.split('?')[1].split('&');
for (var i = 0; i < params.length; i++) {
var key = params[i].split('=')[0];
var value = decodeURIComponent(params[i].split('=')[1]);
queryString[key] = value;
}
}
}
if (queryString["name"] != null && queryString["technology"] != null) {
var data = "<u>Values from QueryString</u><br /><br />";
data += "<b>Name:</b> " + queryString["name"] + " <b>Technology:</b> " + queryString["technology"];
$("#lblData").html(data);
}
});
</script>