“当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件,就会触发”

同页面监听,重写localStorage的方法,抛出自定义事件:

<!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 src="http://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="crossorigin="anonymous"></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>

监听localStorage变化(同页面监听)相关推荐

  1. 【js监听报错】页面监听js报错问题

    <html> <head> <script type="text/javascript">// 页面监听js报错问题 οnerrοr=handl ...

  2. android 监听图库变化,Android ContentObserver 监听图库变化

    电脑环境是XP,软件是gVim7.3,安装在C盘的 Program Files 下.如何设置gVim的字体和背景颜色:C---Program Files---Vim---_vimrc文件,用文本编辑器 ...

  3. vue 组件监听页面切换_vue项目如何监听窗口变化,达到页面自适应?

    [自适应]向来是前端工程师需要解决的一大问题--即便作为当今非常火热的vue框架,也无法摆脱--虽然elementui.iview等开源UI组件库层出不穷,但官方库毕竟不可能满足全部需求,因此我们可以 ...

  4. android 监听界面变化,Android之页面有变化用onWindowFocusChanged来监听权限是否开启...

    1 问题 我们需要在Activity里面监听网络变化.热点是否开启和关闭.GPS服务是否开启.位置权限是否开启等一些列行为. 2 思路 方法一: 如果是需要启动activity进行权限申请,我们可以用 ...

  5. 父页面监听iframe路由变化_前端路由原理

    对于前端路由应该都很熟悉了,开发过spa应用的应该都用过,只是很少人去查一下前端路由实现的原理. 前端路由的实现核心问题有两个,一个是改变url不刷新,另一个是监听url变化.主要靠的就是hash和h ...

  6. js监听html页面大小变化,JS监听窗口变化实时获取浏览器窗口大小

    原理:通过监听窗口的变化来动态获取窗口大小 用到的方法:addEventListener() 监听window的resize事件 js代码: // 定义事件侦听器函数 function watchWi ...

  7. 微信小程序,实现 watch 属性,监听数据变化

    转自微信小程序,实现 watch 属性,监听数据变化 目标 在微信小程序实现 watch 属性,监听 data 中的属性,当被监听属性的值改变时,执行我们指定的方法.​​ 思路 Vue 的 compu ...

  8. Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动

    为了便于进行 系统级别的消息通知,Android引入了一套广播消息机制. 1.广播机制简介: 因为Android中的每个应用程序都可以对自己感兴趣的广播尽心注册,这样程序只会接收自己所关心的广播内容, ...

  9. reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式

    在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...

最新文章

  1. 【Live555】liveMedia下载、配置、编译、安装、基本概念
  2. 蚊子已经很可怕了,而这些吸血昆虫能让你感受真正的恐惧
  3. 关于session共享
  4. 全国主机城市的DNS服务器
  5. 【Python爬虫学习笔记6】JSON文件存储
  6. arcgis-把X Y点展到arcgis中的陷阱
  7. Jumping Jack
  8. Site Definition和Web Template的区别
  9. java中factory方法_Java的23中设计模式--工厂方法模式(Factory Method)
  10. add a legend to a boxplot in MATLAB
  11. 计算机英语初级考试时间,2020年考研考试时间安排及考试科目_考研网
  12. ES6学习笔记---二进制数组(应用)
  13. 9.包装类的构造方法
  14. matlab中的低通freqs,matlab数字低通滤波器 MATLAB一阶低通滤波器的设计
  15. 【离散数学】集合论 第四章 函数与集合(2) 特殊函数类(单射、满射、双射及其性质、常/恒等函数、置换/排列)
  16. ERROR:connect ETIMEDOUT
  17. 2022年蓝桥杯砍竹子
  18. 台式计算机怎样能搜无线连接,电脑如何连无线网_台式电脑怎么连接wifi步骤-win7之家...
  19. QGIS算法列表 (py console输出)
  20. 2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置

热门文章

  1. 数据结构-Huffman树
  2. Paas是什么——Go语言相关学习笔记
  3. IDEA 2020.3版本中的lombok失效问题
  4. mysql事务 brave,mysql 查询当天、本周,本月,上一个月的数据
  5. linux笔记之 开机服务启动的控制,系统日志的查看,防火墙的关闭
  6. java 命令读取参数_如何读取/处理命令行参数?
  7. lisp实战文库_LISP编程举例
  8. 什么是m叉树_国考临近考试了,感觉已经没有进步空间了,最后关头还有没有什么提成成绩的好方法?...
  9. 如何设置jinternalframe无边框_word文档美化技巧:加个边框提升版面颜值
  10. 道java_请问这道java里的这几个语句是什么意思