Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在js中单击按钮时传递变量_Javascript_Html - Fatal编程技术网

Javascript 在js中单击按钮时传递变量

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”; }); 文件 试验 点击 将变量保存在会话

我在js中传递变量时遇到问题! 我有两个html页面,每个html页面都有一个js脚本。我想在第一次单击html中的按钮时,将变量传递到另一个js文件

我的第一个html(index.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 btwSo
sessionStorage。setItem(“vari”,10)
可写成
sessionStorage.vari=10?(我不是反对者)是的,我更喜欢点符号,它更简洁,但是你用数字(sessionStorage.vari)而不是+sessionStorage.vari:)简洁往往被高估。例如,如果您使用接口的
setItem
getItem
方法,您可以轻松地为正在使用的任何存储对代码进行grep。@Dexygen grepping for*storage也应该这样做,不是吗?
const vari = Number(sessionStorage.vari);