我以这种方式拥有2个html和3个js文件
globals.js -->
testIndex = 1;
login.html
//includes global.js and login.js. Fires event() function on a button click
login.js
function event()
{
window.testIndex = 2;
window.location.assign('index.html')
}
index.html
//includes globals.js and index.js
fires init() function onLoad
index.js
function init()
{
alert(window.testIndex);
}
分配工作正常,但index.html中的警告框始终显示1.当我使用window.location.assign时,我的全局变量正在重新初始化。我需要传递一些变量(其中一些不是纯文本字符串,因此无法使用url)。我该怎么办?
答案 0 :(得分:3)
将变量保存在多个页面中的最简单方法是使用HTML5 sessionStorage。但是,此功能仅适用于现代浏览器(IE8 +)。 有关旧浏览器的polyfill,请参阅here (html5polyfill.com)。
有关sessionStorage的更多信息,请访问here (MDN)。
sessionStorage示例:
globals.js -->
sessionStorage['testIndex'] = 1;
login.html
//includes global.js and login.js. Fires event() function on a button click
login.js
function event()
{
sessionStorage['testIndex'] = 2;
window.location.assign('index.html')
}
index.html
//includes globals.js and index.js
fires init() function onLoad
index.js
function init()
{
alert(sessionStorage['testIndex']);
}
如果您需要存储非字符串对象,请先使用JSON.stringify()将其转换为字符串表示形式,然后使用JSON.parse()将其读回。