問題

我有一個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