<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>监听localStorage变化(同页面)</title>
</head>
<body>
<button class="add">add</button>
<button class="del">del</button>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
<script>
var orignalSetItem = localStorage.setItem;
localStorage.setItem = function(key,newValue){
var setItemEvent = new Event("setItemEvent");
setItemEvent.key = key;
window.dispatchEvent(setItemEvent);
orignalSetItem.apply(this,arguments);
};
window.addEventListener("setItemEvent", function (e) {
if(e.key=='demo'){
alert('key值为demo,添加成功');
}
});
$('.add').click(function () {
localStorage.setItem("demo","123");
})
var orignalremoveItem = localStorage.removeItem;
localStorage.removeItem = function(key,newValue){
var removeItemEvent = new Event("removeItemEvent");
removeItemEvent.key = key;
window.dispatchEvent(removeItemEvent);
orignalremoveItem.apply(this,arguments);
};
window.addEventListener("removeItemEvent", function (e) {
if(localStorage.getItem("demo")){
if(e.key=='demo'){
alert("key值为demo,删除成功");
}
}else{
alert("本地数据无key值为demo")
}
});
$(".del").click(function () {
localStorage.removeItem('demo')
})
</script>
</body>
</html>
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?