Javascript 刷新后在DOM上保留JS更改

Javascript 刷新后在DOM上保留JS更改,javascript,Javascript,所以,在我的测试站点中,我有一个奇怪的事情,在那里我有每个“链接”(无论是菜单、按钮还是其他)来显示/隐藏div,而不是加载页面。很基本吧?除了每当我刷新页面,它都会恢复到主页,这是预期的。根据我对答案的搜索,我认为我必须使用本地/会话存储选项。这节课听起来好多了 这就是交易。我在sessionStorage上查看了w3schools页面,了解了它的工作原理,但我不知道如何将其应用于我的页面。基本上,我的页面上的每个链接都运行一个函数,隐藏上一个div,并显示一个包含内容的新div。所以我在想,

所以,在我的测试站点中,我有一个奇怪的事情,在那里我有每个“链接”(无论是菜单、按钮还是其他)来显示/隐藏div,而不是加载页面。很基本吧?除了每当我刷新页面,它都会恢复到主页,这是预期的。根据我对答案的搜索,我认为我必须使用本地/会话存储选项。这节课听起来好多了

这就是交易。我在sessionStorage上查看了w3schools页面,了解了它的工作原理,但我不知道如何将其应用于我的页面。基本上,我的页面上的每个链接都运行一个函数,隐藏上一个div,并显示一个包含内容的新div。所以我在想,如果每次触发一个函数,它都会在一个变量上存储一个值,该变量将指定该函数为最后使用的函数。然后使用sessionStorage并使其工作,但我无法构建它。有什么帮助吗

下面是我当前代码的一个简短示例

编辑

var state = null;
function show1() {
    state = "home";
    "use strict";
    document.getElementById('snow').style.display = "block";
    document.getElementById('btn').style.display = "none";
}


function ramble() {
    state = "ramble";
    "use strict";
    document.getElementById('ramble').style.display = "block";
    document.getElementById('snow').style.display = "none";
    document.getElementById('tex').style.display = "none";
}

基本上就是这样。单击show/hide。

可以使用以下语法:

保存数据:

sessionStorage.setItem('key', 'value');
检索数据:

var data = sessionStorage.getItem('key');
更多信息和示例:


本地存储也是如此,但由于您已经发现的持久性差异,我希望我的解决方案能够帮助您:如果您想保留JS更改,您需要使用AJAX将它们保存到数据库中,还需要更改页面架构和逻辑以使用数据库中的数据。之后,即使重新加载页面,也会保留所有更改。

尝试将其保存在LocalStorages上。是否可以显示HTML?也许这是其中一个更简单的问题?根据我所读到的,localstorage在浏览器关闭后保持更改,这不是我想要的。@AlexD我会的,但我目前在移动设备上,似乎很忙,无法键入html,这就是为什么我只提供了一些JS。如果还需要的话,我会在家里发一些。这个链接看起来非常有用,几乎回答了我所有的问题。我会给它一个快照和报告。所以我添加了一个状态变量,它在每次触发函数时都会改变。我想构建一个If,根据状态值,改变需要改变的任何东西。现在如何构建sessionStorage语句?我需要构建一个函数然后调用它吗?你可以给我一个例子,只是它的基础,使用我提供的编辑过的代码,没有需要做的动作,我会自己做。如果这不算太过分的话。等等,我想我明白了划痕that@Blacksteel我会等的哈哈哦对不起,我忘了回复。是的,我确实设法使它工作,但它变得太复杂了,我反而改变了整个架构,使之更易于管理。谢谢你的帮助!