更改 JavaScript 中的外部变量
Posted
技术标签:
【中文标题】更改 JavaScript 中的外部变量【英文标题】:Change External Variables in JavaScript 【发布时间】:2022-01-03 09:40:56 【问题描述】:我有 1 个外部 JS 文件和 2 个 html 文件。
我想使用 HTML 文件 #1 更改我的 JS 文件中某些变量的值,并让其他 HTML 文件可以访问新值。
我该怎么做?
我的 JS 文件:
(buttons.js)
HTML #1:(输出:fifc = 4895239)
HTML #2:(输出:fifc = 0)
HTML #2 不输出新值,而是输出在buttons.JS (0) 中设置的原始值
有没有办法改变 fifc 以便 HTML #2 将其视为 4895239?
【问题讨论】:
meta.***.com/questions/285551/… 【参考方案1】:拥有一个 HTML 文件意味着页面加载和 JS 变量绑定到现在显示的页面。所以,没有办法直接改变这些变量。这就像试图在另一个程序中更改一个变量。
不过,您可以使用 sessionStorage 或 localStorage 在不同的会话中保持状态(主要区别在于,即使浏览器关闭并且之后清除了 sessionStorage,localStorage 也会保持不变)。根据您的需要,我认为 sessionStorage 可能会更好,但这取决于您。
你可以这样做
// Replace fifc = 0 with this
// it basically sets the item on sessionStorage if it
// doesn't already exist
if (!sessionStorage.getItem('fifc'))
sessionStorage.setItem('fifc', 0),
然后,在每个页面上,您都可以使用
sessionStorage.getItem('fifc');
【讨论】:
您好,非常感谢!我会在哪里做 sessionStorage.setItem()?在我的 JS 文件或 HTML 1 中? 我尝试使用它,但它现在给我 null 作为 fifc 的值 每次需要为“持久变量”设置值时,您都使用sessionStorage.setItem
。
变量fifc
不再有任何意义,您的数据通过sessionStorage
持久化。如果您从sessionStorage.getItem
获得null
,那是因为该项目尚未设置。检查您是否正确设置并仔细检查您的拼写。
刚刚收到,非常感谢!以上是关于更改 JavaScript 中的外部变量的主要内容,如果未能解决你的问题,请参考以下文章
Python:如何允许“内部函数”更改多个“外部函数”中的非局部变量
props 被两次添加到在 React / Javascript 中的组件外部声明的数组变量中