Javascript 试图在两个HTML文件之间共享的JS文件内使用全局数组,但失败

Javascript 试图在两个HTML文件之间共享的JS文件内使用全局数组,但失败,javascript,jquery,Javascript,Jquery,所以我有一个HTML页面,它由一堆表单元素组成,供用户填写。我将用户所做的所有选择推送到一个全局变量中,即我唯一的Javascript文件中的allTheData[] 然后我有了第二个HTML页面,在用户单击按钮后加载。这个HTML页面应该获取allTheData数组中的一些数据并显示出来。我正在调用函数以使用以下命令显示所有数据: window.onload = function () { if (window.location.href.indexOf('Two') > -1)

所以我有一个HTML页面,它由一堆表单元素组成,供用户填写。我将用户所做的所有选择推送到一个全局变量中,即我唯一的Javascript文件中的allTheData[]

然后我有了第二个HTML页面,在用户单击按钮后加载。这个HTML页面应该获取allTheData数组中的一些数据并显示出来。我正在调用函数以使用以下命令显示所有数据:

window.onload = function () {
    if (window.location.href.indexOf('Two') > -1) {
        carousel();
    }
}

function carousel() {
    console.log("oh");
    alert(allTheData.toString());
}
然而,我发现在我的第二个HTML页面中没有显示任何内容,并且allTheData数组似乎是空的,尽管它之前在第一个HTML页面中已填充。我非常自信我正确地将数据推送到了allTheData数组中,因为当我在第一个HTML页面中使用alertallTheData.toString时,所有数据都会显示出来

我认为在我从第一个HTML页面过渡到第二个HTML页面的过程中发生了一些事情,导致allTheData数组为空或其他什么,但我不确定它是什么。请帮助一个新手

Web存储:这听起来像是window.sessionStorage对象的工作,它与它的同类window.localStorage一起允许数据作为字符串保存在用户浏览器中,以便跨同一域上的页面使用

但是,请记住,它们都是类似Cookie的功能,因此它们的有效性取决于用户对每个域的Cookie偏好

一个简单的条件将决定web存储选项是否可用,例如

if (window.sessionStorage) {
   // continue with app ...
} else {
   // inform user about web storage
   // and ask them to accept Cookies
   // before reloading the page (or whatever)
}
// save to...
var array = ['item0', 'item1', 2, 3, 'IV'];
sessionStorage.myApp = JSON.stringify(array);

// retrieve from...
var array = JSON.parse(sessionStorage.myApp);
保存到web存储和从web存储中检索需要在字符串数据类型之间进行转换,通常通过JSON方法进行转换,例如

if (window.sessionStorage) {
   // continue with app ...
} else {
   // inform user about web storage
   // and ask them to accept Cookies
   // before reloading the page (or whatever)
}
// save to...
var array = ['item0', 'item1', 2, 3, 'IV'];
sessionStorage.myApp = JSON.stringify(array);

// retrieve from...
var array = JSON.parse(sessionStorage.myApp);
有比这些更具体的方法可用。更多详细信息和兼容性表等,请参阅


希望有帮助

您正在调用window.location.href.indexOf'Two',它区分大小写。你确定这两个是第二页URL的一部分吗?是的!我相信它是有效的,因为当第二个页面加载时,oh会登录到控制台。那么,第二个页面从哪里获取数据呢?@yezzz第二个页面连接到单个Javascript文件,所以从那里的allTheData数组中获取数据?至少我希望如此:。在浏览器中,全局范围是窗口对象。如果你替换了窗口,你就替换了全局范围。非常感谢!这正是我所需要的。@bobthebuilder4t5没问题: