localStorage元素在header之后没有更新



我目前正在开发一个日语学习网站的个人项目。用户的进度存储在localStorage变量中。我面临的问题是,在设置变量的值并将标题放置到另一个页面之后,localStorage变量没有更新。如果标题被删除,它工作正常。任何帮助都会非常感激。请跟随我的代码片段。谢谢你!

if (!in_array($id, $_SESSION['seenRight'])) {
array_push($_SESSION['seenRight'],$id);
if (count($_SESSION['seenRight']) == 10) {
?> <script> 
if (typeof(Storage) !== "undefined") {
<?php
// Check if there was already a localstorage for that level, make a percentage with the new added value, replace value.
// Lock the level.
if(count($_SESSION['seenWrong']) == 0) {
?> localStorage.setItem("progressLevel" + "<?php echo $_SESSION['level'] ?>", "50");<?php
}
if(count($_SESSION['seenWrong']) > 0 && count($_SESSION['seenWrong']) <= 2) {
?> localStorage.setItem("progressLevel" + "<?php echo $_SESSION['level'] ?>", "40");<?php
}
if(count($_SESSION['seenWrong']) > 2 && count($_SESSION['seenWrong']) <= 4) {
?> localStorage.setItem("progressLevel" + "<?php echo $_SESSION['level'] ?>", "30");<?php
}
if(count($_SESSION['seenWrong']) > 4 && count($_SESSION['seenWrong']) <= 6) {
?> localStorage.setItem("progressLevel" + "<?php echo $_SESSION['level'] ?>", "20");<?php
}
if(count($_SESSION['seenWrong']) > 6 && count($_SESSION['seenWrong']) <= 8) {
?> localStorage.setItem("progressLevel" + "<?php echo $_SESSION['level'] ?>", "10");<?php
}
if(count($_SESSION['seenWrong']) > 8 && count($_SESSION['seenWrong']) <= 10) {
?> localStorage.setItem("progressLevel" + "<?php echo $_SESSION['level'] ?>", "0");<?php
}
unset($_SESSION['level']);
unset($_SESSION['id']);
$_SESSION['seenRight'] = array();
$_SESSION['seenWrong'] = array();
header('Location:review_menu.php'); // IF THIS IS REMOVED, IT WORKS FINE.
?>
} else {
<?php header('Location:review_menu.php'); ?>
}
</script> <?php
}
}

将页眉放到其他页面

…你自己也说了。你告诉浏览器转到另一个页面…所以这个页面,你要输出localstorage代码的页面,永远不会被浏览器加载,当然JavaScript也不会执行。

如果你想做一个重定向,我建议做它从javascript(例如使用window.location),在本地存储代码有机会执行。

相关内容

最新更新