【发布时间】:2020-05-06 11:49:17
【问题描述】:
我正在处理 users.php 页面,所以每当我点击每个用户名前面的链接 view_details.php 时:
1) 它将使用该用户 ID 创建本地存储,并且每隔一秒本地存储将检查该用户 ID(是否为空),然后打开新窗口 view_details.php
2) 在 view_details.php 中完成更改后,我将更新表格并从此窗口清除本地存储(查看 details.php)。
3) 由于 setinterval 函数在父窗口(user.php)中运行,但是当我们从 view_details.php 中清除它时,现在父窗口应该显示一些警报,表明该用户的本地存储已被清除
但我无法访问在 user.php 中创建的 view_details.php 中的本地存储
user.php
<script>
$("body").on('click', '.view_user_details', function () {
var user_id= $(this).attr("data-id");
window.localStorage.setItem(user_key, user_id); // localstorage is created here with user id
check_user_status(); // function called to check localstorage is cleared or not
//open view_details.php in new window
}
function check_user_status() {
setInterval(function () {
if (localStorage.length > 0) {
console.log('user value:' + window.localStorage.getItem('user_key'));
} else {
console.log('local storage clear');
}
}, 3000);
}
</script>
查看 details.php 的脚本
<script>
$(".save_details").click(function () {
localStorage.clear();
window.close();
});
</script>
【问题讨论】:
-
是的,我也试过了,但对我没用
-
请原谅我一开始没有理解你的问题。本地存储是域范围的,所以只要您清除它,无论您在哪个窗口执行它,它都会清除整个域的本地存储请参阅此处developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API
-
这是由无法再复制的错字或问题引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。
-
您可以使用
storage事件,而不是轮询 localStorage,该事件将在 localstorage 发生更改时触发。 developer.mozilla.org/en-US/docs/Web/API/Window/storage_event -
参加存储活动的好主意。
标签: javascript jquery local-storage session-storage