Javascript 如何保留使用JS onclick函数更改的innerhtml内容

Javascript 如何保留使用JS onclick函数更改的innerhtml内容,javascript,jquery,html,Javascript,Jquery,Html,这是一个简单的问题,但似乎无法解决。 我希望能够更改链接的innerhtml内容,一旦被单独链接触发的onclick函数触发,该链接实际上会将用户带到另一个页面(在网站内部而不是外部网站),我让脚本正常工作,但是一旦页面重新加载并转到链接指向的另一个页面,想要更改的innerhtml内容就会消失。实际上,我想保持文本的更改,即使页面被重新加载并转移到其他地方 该脚本如下所示: <script> function myFunction() { docum

这是一个简单的问题,但似乎无法解决。 我希望能够更改链接的innerhtml内容,一旦被单独链接触发的onclick函数触发,该链接实际上会将用户带到另一个页面(在网站内部而不是外部网站),我让脚本正常工作,但是一旦页面重新加载并转到链接指向的另一个页面,想要更改的innerhtml内容就会消失。实际上,我想保持文本的更改,即使页面被重新加载并转移到其他地方

该脚本如下所示:

<script>
    function myFunction() {
            document.getElementById("testchange").innerHTML = "Get Started";
    } //Js script that does the innerHMTL change
</script> 

<a href="http://example.com/en/page.html"  class="lang-col" onclick=" myFunction()">eng</a> // button that triggers the onclick function but takes the user to another page inside the site

<a href="http://example.com" id="testchange" >Hello</a> // text to be changed by JS and want to keep the change even if the page is reloaded and taken elsewhere

函数myFunction(){
document.getElementById(“testchange”).innerHTML=“Get Started”;
}//执行innerHMTL更改的Js脚本
//触发onclick函数但将用户带到站点内另一个页面的按钮
//要由JS更改的文本,并希望保留更改,即使页面被重新加载并转移到其他地方

你知道我该怎么做吗?Thanx

使用cookie或会话/本地存储,会话存储选项如下

只要浏览器窗口打开,sessionStorage中存储的数据就会持续,而localStorage没有过期时间

<a href="http://example.com/en/page.html"  class="lang-col" onclick=" setFlag()">eng</a>
<a href="http://example.com" id="testchange" >Hello</a>
<script>
    function setFlag() {
      sessionStorage.setItem('setFlag', 'true');
    } 
    if (sessionStorage.getItem("setFlag")) 
        document.getElementById("testchange").innerHTML = "Get Started";
</script> 

函数setFlag(){
setItem('setFlag','true');
} 
if(sessionStorage.getItem(“setFlag”))
document.getElementById(“testchange”).innerHTML=“Get Started”;

注意:此代码需要放在HTML元素之后,理想情况下放在页面底部

为了使其正常工作,您需要某种存储。让我们试试本地存储:

在设置变量之前,首先检查是否进行了更改,然后处理事件:

<script>
    function ready(fn) {
        if (document.readyState != 'loading'){
            fn();
          } else {
            document.addEventListener('DOMContentLoaded', fn);
          }
        }
    }

    function myFunction() {
        document.getElementById("testchange").innerHTML = "Get Started";
        //this will save the state of the change
        localStorage.setItem('textSet', true);
    }

    //this will change the text when the page is loaded if the change has been made before.
    ready(function(){
        if(localStorage.getItem('textSet')){
            document.getElementById("testchange").innerHTML = "Get Started";
        }
    })
</script>

功能就绪(fn){
如果(document.readyState!=“正在加载”){
fn();
}否则{
文件。addEventListener('DOMContentLoaded',fn);
}
}
}
函数myFunction(){
document.getElementById(“testchange”).innerHTML=“Get Started”;
//这将保存更改的状态
setItem('textSet',true);
}
//如果以前进行过更改,则在加载页面时会更改文本。
就绪(函数(){
if(localStorage.getItem('textSet')){
document.getElementById(“testchange”).innerHTML=“Get Started”;
}
})

如果页面重新加载当前页面,JS执行上下文也会消失。你可以使用本地存储,但是。。。听起来你更需要在服务器端做些什么,或者做一个真正的单页应用。Thanx对于反馈,你说的有道理,希望有人能帮助我解决这个问题。thanxI我很确定你想要的东西不能用纯JS来完成。您可以让它向您发送对链接的修改(不确定具体如何修改),并在onload javascript中检查对url的修改。如果修改是说“”,那么它将运行myFunction。你有不平衡的花括号thanx,实际上有一些括号丢失,并尝试了不同的方式脚本,但没有工作,thanx无论如何,正确的脚本如下!!再次感谢你的帮助!这是这个答案的后续问题,希望你们能在这方面再次帮助我,Thanx