Как мне постоянно хранить значение переменной JS в документе HTML? - PullRequest
0 голосов
/ 29 марта 2020

Я воссоздаю кран криптовалюты со встроенным азартным играми в простом HTML / CSS / JS, чтобы лучше понять, как они работают и как баланс переходит от user к site шаг за шагом и к изучите JS, поэтому я пытаюсь воспроизвести три функции, такие как депозиты, бросить кубик, чтобы получить свободный баланс и сыграть в азартные игры.

И я столкнулся с двумя проблемами на депозите:

  1. Когда я просматриваю 3 страницы, очевидно, баланс сбрасывается до 0, поскольку он перезагружает файл. js, как мне подойти к этому упражнению? Должен ли я начать использовать куки? Есть ли способ сохранить значения в текущем сеансе или получить постоянные значения при просмотре этих 3 страниц?

  2. Форма депозита не работает на route/deposit.html, она добавляет значение к переменной, но она не редактирует текущий баланс на сайте, но на других URL, таких как route/deposit.html?#, она работает.

let myBalance=0;
let dAmount=0;

function deposit(){

    dAmount = Number(document.getElementById("dAmount").value);
    myBalance = myBalance + dAmount;
    document.getElementById("myBalance").innerHTML=myBalance;
}
/* Style the header with a grey background and some padding */
.header {
    overflow: hidden;
    background-color: #f1f1f1;
    padding: 20px 10px;
  }
  
  /* Style the header links */
  .header a {
    float: left;
    color: black;
    text-align: center;
    padding: 12px;
    text-decoration: none;
    font-size: 18px;
    line-height: 25px;
    border-radius: 4px;
  }
  
  /* Style the logo link (notice that we set the same value of line-height and font-size to prevent the header to increase when the font gets bigger */
  .header a.logo {
    font-size: 25px;
    font-weight: bold;
  }
  
  /* Change the background color on mouse-over */
  .header a:hover {
    background-color: #ddd;
    color: black;
  }
  
  /* Style the active/current link*/
  .header a.active {
    background-color: dodgerblue;
    color: white;
  }
  
  /* Float the link section to the right */
  .header-right {
    float: right;
  }
  
  /* Add media queries for responsiveness - when the screen is 500px wide or less, stack the links on top of each other */
  @media screen and (max-width: 500px) {
    .header a {
      float: none;
      display: block;
      text-align: left;
    }
    .header-right {
      float: none;
    }
  }
   /* Create a static faucet balance indicator */
  .faucetbalance{
      position: absolute;
      bottom: 5%;
  }
<html>
<head>
    <title>Faucet emulation</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<script src="./test.js"></script>
<body>
    <div class="header">
        <a href="#default" class="logo">SupaFaucet</a>
        <div class="header-right">
          <a href="./freeroll.html">Free BITS</a>
          <a href="#hilo">HI-LO</a>
          <a href="#deposit" class="active">Deposit</a>
          <a>Balance: <span id="myBalance">0</span> BITS</a>
        </div>
        <div class="faucetbalance">
            <a>Faucet Balance: <span>0</span> BITS</a>
        </div>
    </div>
    <h1>Deposit BITS</h1>
    <form onSubmit="deposit()">
        <label for="deposit">Deposit:</label><input id="dAmount" type="number">
        <input type="submit">
    </form>    
    
</body>
</html>

1 Ответ

0 голосов
/ 29 марта 2020

Вы должны использовать localStorage или sessionStorage.

Вот пример

// Store
  localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");

Синтаксис для сохранения данных в localStorage:

localStorage.setItem("key", "value");

Синтаксис для чтения данных из localStorage :

var lastname = localStorage.getItem("key");

Синтаксис для УДАЛЕНИЯ данных из localStorage:

localStorage.removeItem("key");
...