我是JavaScript的初学者。我正在打开一个html页面,其JavaScript文件有一个全局变量token
。
在JavaScript文件中,我在某些条件下使用代码打开另一个html链接:
if(data.status==="Success"){
window.open("http://172.19.101.65:8001/","_self")
}
现在在上面的html链接的JavaScript文件中,无论加载哪个,我都无法通过window.token
访问价值代币。
我不确定我的做法是对还是错。我会感谢你的帮助。
答案 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。几乎每个浏览器都适用和支持;)