示例:
在按下按钮(NEW)的主页面中, 页面然后将使用Javascript 在新窗口中打开一个新页面 调用redirectPage()。
在主页面上点击一个按钮(EXIT), 然后页面将调用 确认退出(),然后 closeChildWindows()关闭所有 重定向到之前弹出新窗口 另一个新页面。
但是,JS变量 (childWindowHandles)将永远 如果我刷新主页重置, 这会导致页面无法访问 之前关闭所有其他弹出窗口 EXIT按钮正在重新定位 点击
有谁知道如何解决这个问题?能够保持JS变量(childWindowHandles)甚至主页面正在刷新吗?
var childWindowHandles = new Array();
function redirectPage(url)
{
childWindowHandles[childWindowHandles.length] = window.open(url)
}
function confirmExit(url)
{
closeChildWindows()
window.location=url
}
function closeChildWindows()
{
for (var loop=0; loop<childWindowHandles.length; loop++)
{
if (!childWindowHandles[loop].closed)
{
childWindowHandles[loop].close();
}
}
}
答案 0 :(得分:10)
您可以使用cookies来保留值...
编辑:您可能会发现我使用的一个简单对象:
用法:的
// Store a key/value for 1 day:
cookieManager.set('name', 'a value', 1);
// Retrieve a value associated to a key:
var value = cookieManager.get('name');
// Remove a key/value:
cookieManager.remove('name');
实现:
var cookieManager = {
set: function (name, value, expireDays) {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + expireDays);
document.cookie = name + "=" + escape(value) +
((!expireDays) ? "" : ";expires="+expireDate.toGMTString());
},
get: function (key) {
var start,end;
if (document.cookie.length > 0) {
start = document.cookie.indexOf(key + "=");
if (start != -1) {
start = start + key.length + 1;
end = document.cookie.indexOf(";",start);
if (end == -1) {
end = document.cookie.length;
}
return unescape(document.cookie.substring(start,end));
}
}
return "";
},
remove: function (key) {
this.set(key, '', -1);
}
}
答案 1 :(得分:3)
您可以使用cookies或window.name :) window.name to store session variables
答案 2 :(得分:2)
Per this post here on SO,Firefox 3.5,Safari 4和IE8支持HTML5 Storage。
答案 3 :(得分:1)
或者使用PersistJS,这可以简化您对可用后端存储机制的访问。 (但不含cookie)
答案 4 :(得分:1)
肯定:
我还建议您使用javascript对象存储各种值并使用JSON对其进行序列化,并将该字符串放入window.name。
请确保您不会将任何易受攻击的数据保留在内...出于安全原因。
答案 5 :(得分:0)