javascript中的全局变量无法正常工作

时间:2017-04-20 10:27:24

标签: javascript html http global-variables

我是JavaScript的初学者。我正在打开一个html页面,其JavaScript文件有一个全局变量token

在JavaScript文件中,我在某些条件下使用代码打开另一个html链接:

if(data.status==="Success"){
  window.open("http://172.19.101.65:8001/","_self")
}

现在在上面的html链接的JavaScript文件中,无论加载哪个,我都无法通过window.token访问价值代币。

我不确定我的做法是对还是错。我会感谢你的帮助。

4 个答案:

答案 0 :(得分:0)

如果父窗口打开,您应该可以通过弹出目标中的以下代码访问父窗口变量

parent.window.token

由于您正在加载目标为“_self”的新窗口,因此您的上一个窗口将关闭,并且无法访问parent.window数据。

我建议您通过localstorage,cookies或querystrings传递令牌。或者在空白目标上打开新窗口,然后在访问父级令牌后关闭其父级。

答案 1 :(得分:0)

您可以尝试以下代码

{{1}}

答案 2 :(得分:0)

您无法访问令牌变量,因为window.open进行重定向,因此您的执行上下文将丢失,并且所有变量都附加到全局对象(在您的情况下为window.token

https://developer.mozilla.org/en-US/docs/Web/API/Window/open

您可以做的是将令牌作为网址的一部分传递或使用本地存储

window.localStorage.setItem('token', window.token);

然后在加载页面后立即获取

var token = window.localStorage.getItem('token');

https://developer.mozilla.org/it/docs/Web/API/Window/localStorage

答案 3 :(得分:0)

您可以使用 本地存储空间 :跨页面工作

设置项目:localStorage.setItem('token','value')

获取物品:localStorage.getItem('token')

PS :您也可以使用Cookie。几乎每个浏览器都适用和支持;)