问题

我有一个javascript提示,当我第一次打开我的网站时执行.这个提示的基本功能是询问用户他们的名字,然后将其插入标题I.E.“Hello,’user’!”我在我的网站上有多个页面,每当我导航到不同的页面然后导航回主页时,将再次显示提示,询问用户相同的问题.有没有办法只在网站第一次加载时才使用提示显示,然后将用户名保留在变量中,直到关闭网站?

这是我的javascript:

 function askName() {
    let username = prompt("To make your time on this website better, please enter your name.");
    if (username != null) {
        document.getElementById("userpara").innerHTML = "Hello, " + username;
    } else {
        document.getElementById("noUser").innerHTML = "Welcome, Stranger!";
    }
}
 

这是我的Html:

 <h1 id="userpara" style="text-align: center;"></h1>
<h1 id="noUser" style="text-align: center;"></h1>
 

为了在页面加载上执行函数,我在html中的body标记中使用onload函数,如下所示:

 <body onload="askname()">
...
</body>
 

自由纠正我的任何代码,因为我仍在学习:)

  最佳答案

尝试使用 sessionStorage :

 function askName() {
    let username = sessionStorage.getItem('username');

    if (username === null) {
        username = prompt("To make your time on this website better, please enter your name.");
    }

    if (username != null) {
        document.getElementById("userpara").innerHTML = "Hello, " + username;
        sessionStorage.setItem('username', username);
    } else {
        document.getElementById("noUser").innerHTML = "Welcome, Stranger!";
    }
}
 

sessionStorage不同于localStorage,当您关闭窗口/选项卡时,sessionStorage将被擦除,这是您想要的. localStorage保持直到用户清除缓存或通过脚本删除数据.

  相同标签的其他问题

javascripthtmlcss