sessionStorage.clear() 不工作

sessionStorage.clear() not working

我在一个项目中成功使用了 sessionStorage,但有一个警告:我无法使用 clear() 运算符消除存储,如文档所述。

我在退出我的站点的管理模式时执行此操作,这涉及单击列表中的注销项,如下所示:

<li><a href="admin_logout.php">Log Out</a></li>

admin_logout.php文件然后销毁session变量等,然后重定向到站点首页。它以前有效的形式是:

<?php
session_start();
session_destroy();
@header('Location:./');
exit;
?>

一切正常。我似乎无法融入例程的是清除sessionStorage。对于我的 admin_logout.php 文件的文本,我试过:

<?php
session_start();
?>

<script>
sessionStorage.clear();
</script>

<?php
session_destroy();
@header('Location:./');
exit;
?>

...以及:

<?php
session_start();

echo '<script>';
echo 'sessionStorage.clear();';
echo '</script>';

session_destroy();
@header('Location:./');
exit;
?>

也许指出根本原因是当我放置:

?>
<script>
alert("HELLO");
</script>
<?php

...在此脚本中,永远不会执行警报,但会执行其他所有操作。我如何调用基于 <script>sessionStorage.clear() 操作来清除上面列出的例程中的会话存储项目?

我认为这是因为您在服务器端进行重定向,而 sessionStorage.clear() 发生在客户端。我相信你会在有机会 运行.

之前重定向

Allicam 是正确的;我需要将存储清除代码封装在一个回调函数中:

<?php
session_start();
session_destroy();
<script type="text/javascript">

function firstFunction(_callback){
    sessionStorage.clear();
    _callback();
}

function secondFunction(){
    firstFunction(function() {
        window.location = './';
    });    
}
secondFunction();
</script>