Javascript 在js中单击按钮时传递变量
我在js中传递变量时遇到问题! 我有两个html页面,每个html页面都有一个js脚本。我想在第一次单击html中的按钮时,将变量传递到另一个js文件 我的第一个html(index.html)是:Javascript 在js中单击按钮时传递变量,javascript,html,Javascript,Html,我在js中传递变量时遇到问题! 我有两个html页面,每个html页面都有一个js脚本。我想在第一次单击html中的按钮时,将变量传递到另一个js文件 我的第一个html(index.html)是: //test.js var-vari; document.getElementById(“btn”).addEventListener(“单击”,函数)(){ 变异系数=10; window.location.href=“./index2.html”; }); 文件 试验 点击 将变量保存在会话
//test.js
var-vari;
document.getElementById(“btn”).addEventListener(“单击”,函数)(){
变异系数=10;
window.location.href=“./index2.html”;
});代码>
文件
试验
点击
将变量保存在会话存储中。而不是
vari = 10;
做
然后您可以在test2.js
中检索它:
console.log(sessionStorage.vari);
请注意,存储将始终包含一个字符串。如果类型很重要,请确保转换回数字:
const vari = Number(sessionStorage.vari);
对于更通用的解决方案,要传输任何类型的可序列化数据,请在保存时使用JSON.stringify
,在检索时使用JSON.parse
。正如您所看到的,您会得到一个错误。您需要测试元素btn
是否存在-因为它不存在且未单击,所以变量未设置为可能的重复:@Dexygen这是一个重复吗?window.globalVar将在位置更改时消失。OP未使用节点或resact btwSosessionStorage。setItem(“vari”,10)
可写成sessionStorage.vari=10代码>?(我不是反对者)是的,我更喜欢点符号,它更简洁,但是你用数字(sessionStorage.vari)而不是+sessionStorage.vari:)简洁往往被高估。例如,如果您使用接口的setItem
和getItem
方法,您可以轻松地为正在使用的任何存储对代码进行grep。@Dexygen grepping for*storage也应该这样做,不是吗?
const vari = Number(sessionStorage.vari);