SessionStorage.getitem не работает при загрузке страницы - PullRequest
0 голосов
/ 29 мая 2020

У меня проблема с использованием хранилища. Я заставил его работать, но как только я вставляю ifthen logi c, он ломается. Ниже рабочий код. Нижний код - это когда я обновляю функцию window.onload, что заставляет ее работать. Кто-нибудь знает, почему он ломается и как я могу это исправить? Я использую только html / javascript, и сервер не используется. Большое спасибо!

<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
<html lang="en">
<html>
<head>
<title>Test</title>
</head>
<body>
<div id="container">

<ul class="vertical-nav">

<li><a href="">Fruit</a>
<ul class="sub-menu">
<li><a href="test.html" onclick="ChangeToApple()">Apple</a></li>
<li><a href="test.html" onclick="ChangeToGrape()">Grape</a></li>
</ul>
</li>
</ul>

<div id="ShowDept">

</div>
</div>
</body>
<script>

  window.onload = function() {
  var x = sessionStorage.getItem("Dept");


document.getElementById("ShowDept").innerHTML = x;
 }

function ChangeToApple() {
sessionStorage.Dept = "Apple";
}

function ChangeToGrape() {
sessionStorage.Dept = "Grape";
}

 </script>
  window.onload = function() {
  var x = sessionStorage.getItem("Dept");

      if (x = "Apple") {

} else if (x = "Grape") {

}
document.getElementById("ShowDept").innerHTML = x;
 }

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

вместо

sessionStorage.Dept = "Apple";

попробуйте

sessionStorage.setItem("Dept", "Grape");
0 голосов
/ 29 мая 2020
var x = sessionStorage.getItem("Dept");

if (x = "Apple") {

} else if (x = "Grape") {

}
document.getElementById("ShowDept").innerHTML = x;

x = "Apple" означает: «Назначьте строку 'Apple' переменной x. Он не проверяет, равно ли x "Apple"; используйте для этого x === "Apple". Поскольку вы выполняете присваивание в вашем операторе if, вы всегда будете видеть Apple в своем HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...