更新全局变量

Update a global variable

本文关键字:全局变量 更新      更新时间:2023-09-26

我有一个问题,我的2个js文件和两个html文件main.html和log.html只有一个按钮,重定向到main.html,并抛出一个警告

JS文件1我有一个全局变量

context= {};

和main:

function main() { if (typeof context.active != 'undefined') alert(context.active); }

JS文件2:

我有一个函数

function setActive() { context.active=true; window.location.href="main.html"; }

当我点击我的按钮,它确实重定向到main.html,但没有什么发生(所以它是未定义的)。我做了几次测试,这个按钮很好用。为什么不更新context。active?

谢谢。

按照这些行试试,您需要检查并考虑某些情况。

JS文件1:
context = {};

主HTML:(我们正在检查以确保上下文。已分配活动。您将得到一个未定义的消息,如果上下文。active未被指定为context的属性

function main() 
{ 
    if (typeof context.active != 'undefined')
       alert(context.active); 
}

JS文件2:

function setActive() { context.active=true; }

浏览器重定向的那一刻,Javascript变量基本上被删除了。整个页面重新加载(重定向)会导致一个全新的页面。

如果你试图在客户端跨页面加载持久化数据,那么你将不得不使用cookie或会话存储。

文档。Cookie - link

sessionStorage - link

每种方法都有它的优点和缺点,所以一定要阅读文档并检查你计划支持的浏览器对这些api的支持。