首页 > 解决方案 > Html,带有节点js传递变量的Javascript

问题描述

因此,我正在使用节点 js 对后端进行编程,该节点可为我提供有关视频游戏的数据。现在我已经得到了一个可以提供一些结果的搜索页面,但下一步是能够单击其中一个结果并将其转到该游戏的特定页面。

function ok() {
   let search = input.value;
    fetch("http://localhost:3000/search?search=" + search, {})
        .then((response) => {
            return response.json();
        })
        .then((response) => {
            for(let n = 0; n < response.length; n++){help[n] = response[n]["name"];}
            fetch("http://localhost:3000/cover?search=" + response[0]["id"],{})
                .then((response)=>{
                    return response.json();
                })
                .then((response)=> {
                    name1.innerText = "\n" + help[0];
                    img1.src = response[0]["url"];
                 });
            fetch("http://localhost:3000/cover?search=" + response[1]["id"],{})
                .then((response)=>{
                    return response.json();
                })
                .then((response)=> {
                    name2.innerText = "\n" + help[1];
                    img2.src = response[0]["url"];
                });
            fetch("http://localhost:3000/cover?search=" + response[2]["id"],{})
                .then((response)=>{
                    return response.json();
                })
                .then((response)=> {
                    name3.innerText = "\n" + help[2];
                    img3.src = response[0]["url"];
                });
            fetch("http://localhost:3000/cover?search=" + response[3]["id"],{})
                .then((response)=>{
                    return response.json();
                })
                .then((response)=> {
                    name4.innerText = "\n" + help[3];
                    img4.src = response[0]["url"];
                })
        })
}

在这里,我只是从我的 API 中获取数据,这工作正常,但我遇到的问题是我在图像上有一个 onclick 事件,将我带到一个带有新 javascript 文件的新 html 文件。这也有效,但我需要第一个 javascript 文件中的一些变量,以便我可以访问我在新的 javascript 文件中单击的游戏的特定数据。例如,如果我点击 img one 我会发送到新的 html 文件,但在新的 javascript 文件中我需要帮助变量来访问被点击的游戏的名称。

标签: javascripthtmlnode.js

解决方案


有几种方法可以实现这一点,但一种简单的方法是使用浏览器的 localStorage。只需保存单击事件所需的任何信息,只要下一页仍然在同一个域中,它就会在呈现下一页时仍然存在。

localStorage.setItem("game", event.target.innerText);

然后在下一页上,只需使用以下方法检索值:

var nameOfGame = localStorage.getItem("game");

推荐阅读