我有两个js文件,a.js 和 b.js,我要怎么在a.js里面获取到b.js里的一个数组对象addPic更新后的数据?
搜了很多说是在网页引入时把 b.js放在a.js的前面,但试过了没用,只能获取到数组对象的原始数据,新增加的就获取不到
var addPic = [],
picUrl = [
{url: "../img/photoWall/child1.jpg"},
{url: "../img/photoWall/child1.jpg"},
{url: "../img/photoWall/child1.jpg"},
];
addPic.push(
{
text: "好一朵祖国的娇花",
url: picUrl
}
);
这是b.js里的数组对象,是一个全局的。我两个js文件里都有一个输出语句输出addPic数组的长度,我新增加数据后,在b.js里的输出语句里数组长度是我新增数据后的总长度,但在a.js里长度就为1,内容就只有原始数据,新增的没有
大佬些,咋整啊?
你跳转页面了,新的页面中当然就获取不到上个页面中动态更改的内容了。
你要知道,前端浏览器中每个页面中的js代码环境都是完全独立的,当页面跳转时,上个页面中的所有内容(包括js变量和函数)都会全部销毁,跳转到新的页面后再以一个全新的环境重新载入js代码执行。
想要跨页面传递数据可以看看 https://www.jianshu.com/p/5b81672352cd
请补充一下描述:在b.js中什么时候新增?在a.js中什么时候取的长度?
如果b.js代码只有你放出的这些,这个时候在a.js中取addPic的length,结果当然是1;
解决思路:确保在b.js对数组操作完成之后再从a.js中取addPic的length
在b.js的addPic.push()后加上window.addPic =addPic;然后a.js在需要addPic的地方用window.addPic或者用export
用sessionstorage或者localstorage