Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在所有浏览器上使用jQuery绑定localStorage更改事件?

如何在所有浏览器上使用jQuery绑定localStorage更改事件?
EN

Stack Overflow用户
提问于 2011-01-12 17:26:26
回答 3查看 61.5K关注 0票数 66

如何使用jQuery将函数绑定到HTML5 localStorage更改事件?

代码语言:javascript
运行
AI代码解释
复制
$(function () {

  $(window).bind('storage', function (e) {
    alert('storage changed');
  });

  localStorage.setItem('a', 'test');

});

我已经尝试了上面的方法,但是没有显示警告。

更新:它可以在Firefox3.6上工作,但在Chrome8或IE8上不能工作,所以问题应该更多地是“如何在所有浏览器上使用jQuery绑定到localStorage更改事件?”

EN

回答 3

Stack Overflow用户

发布于 2014-04-07 21:40:18

下面是如何在JQuery中执行此操作:

代码语言:javascript
运行
AI代码解释
复制
 $(window).bind('storage', function (e) {
     console.log(e.originalEvent.key, e.originalEvent.newValue);
 });

直接访问e.key不起作用。您需要使用e.originalEvent.key

有些浏览器只会向其他选项卡发送存储通知,有些则不会。(火狐会向自己的选项卡发送存储事件,但在key设置为空的情况下,似乎是这样的)。

票数 13
EN

Stack Overflow用户

发布于 2016-10-28 07:22:09

值得一提的是,只有当项目实际发生更改时,才会在.setItem上调用事件处理程序。为了让它正常工作,我费了好大劲,直到我意识到你不能一直用相同的值运行setItem。

我使用的是Chrome版本54.0.2840.71 m

这是一个测试(在两个浏览器选项卡中打开它)。

代码语言:javascript
运行
AI代码解释
复制
if (window.addEventListener)
            addEventListener('storage', storage_event, false);
        else if (window.attachEvent)
            attachEvent('onstorage', storage_event, false);
        function storage_event(e) {
            console.log("Time is now "+ e.newValue);
        }

        setInterval(function () {
            var time=new Date().getTime();
            localStorage.setItem("time", time);
            console.log("Setting time to "+time);
        }, 1000)
票数 7
EN

Stack Overflow用户

发布于 2017-11-08 20:43:40

每当键值发生更改时,都可以使用诸如localDataStorage之类的实用程序在同一窗口/选项卡中为您触发事件。您还可以使用它透明地设置/获取以下任何“类型”:Array、Boolean、Date、Float、Integer、Null、Object或String。

免责声明我是实用程序/DISCLAIMER的作者

实例化该实用程序后,以下代码片段将允许您监视事件(在普通JS中,因为已经给出了jQuery示例):

代码语言:javascript
运行
AI代码解释
复制
function localStorageChangeEvents( e ) {
    console.log(
        "timestamp: "     + e.detail.timestamp + " (" + new Date( e.detail.timestamp ) + ")" + "\n" +
        "key: "           + e.detail.key     + "\n" +
        "old value: "     + e.detail.oldval  + "\n" +
        "new value: "     + e.detail.newval  + "\n"
    );
};
document.addEventListener(
    "localDataStorage"
    , localStorageChangeEvents
    , false
);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4671852

复制
相关文章
RStuido Server 选择不同的 R 版本(conda 中的不同 R 版本)
自从上一次服务器重装系统之后,总感觉缺少了一些东西,安装R包很多依赖库报错,也可以解决,但总是存在,烦。
章鱼猫先生
2021/10/15
4.2K0
RStuido Server 选择不同的 R 版本(conda 中的不同 R 版本)
惊艳 | RStuido server选择不同的R版本(conda中的不同R版本)
自从上一次服务器重装系统之后,总感觉缺少了一些东西,安装R包很多依赖库报错,也可以解决,但总是存在,烦。
用户7010445
2021/07/12
10.6K5
惊艳 | RStuido server选择不同的R版本(conda中的不同R版本)
ubuntu的不同版本
ubuntu是现在最流行的Linux安装包,本文介绍了ubuntu的各种版本。 一、Ubuntu 每个ubuntu的版本都包含一个版本号(version number)和一个代码名(code name
ruanyf
2018/04/13
2.4K0
ubuntu的不同版本
下载不同版本的xcode
1.连接xcode官网下载连接 注:需要苹果开发账号登录 2.搜索 xcode image.png 3.选择自己需要的xcode 版本然后下载 image.png 如果想要多个xcode 版本都
用户1437675
2019/02/22
1.3K0
下载不同版本的xcode
使用C# 探索 ML.NET 中的不同机器学习任务
ML.NET 是 Microsoft 开源的针对 .NET 应用程序的 跨平台机器学习库,允许您使用 C#、F# 或任何其他 .NET 语言执行机器学习任务。此外,ML.NET 支持在其他机器学习框架中构建的模型,如TensorFlow,ONNX,PyTorch 等,它也具有极高的性能,可用于各种机器学习任务。
张善友
2022/03/30
1.5K0
使用C# 探索 ML.NET 中的不同机器学习任务
不同浏览器对于换行的处理
在一个容器中,如果设定了宽度,一般来说自动换行都是比较正常的,但是如果遇到了连续的英文字符,这个问题就会让人头疼。这不,我们部门的用户在测试的时候输入连续的字符,就出现了容器被撑大而样式变形的情况发生,怎么解决这个问题呢?
大江小浪
2018/07/24
1.4K0
java中==、equals的不同AND在js中==、===的不同
       1.==操作符:首先,对于非基本数据类型的对象比较,相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同(当然地址相同,值也一定相同)才会返回true.     但是,对于基本数据类型的比较(比如:int flot double等),值相同,"=="比较便会返回true.(这是编译的规则,当进行基本数据类型的比较时,会编译生成if_icmpne指令不会进行比较地址。而进行对象比较时,会生成if_icmpne指令,会比较地址。生成的指令都是不同的)。
洋仔聊编程
2019/01/15
4.1K0
考古 dotnet 的不同版本
本文来考古一下 dotnet 发布过的版本,相信本文里面有很多个版本都是大家很少听过的
林德熙
2021/05/27
6460
maven中打不同JDK版本的jar包
最近项目中,I商机用jdk1.7,而ltc用jdk1.8,所以提供给他们的api都要不同的版本
星痕
2018/09/12
2.7K0
怎样切换不同版本的 Node[每日前端夜话0x90]
有时候几乎每周都会发布新版本的 Node.js —— 每隔几周发布一次小版本,每隔几个月发布一次主要版本。如果你是一个需要在不同程序和项目之间切换的码农,可能会发现需要运行不同版本的 Node。
疯狂的技术宅
2019/07/10
4.2K0
怎样切换不同版本的 Node[每日前端夜话0x90]
Python不同版本环境的切换
由于Python不同版本之间不能完全兼容,因此在实际开发过程中,很容易遇到需要切换Python版本的情形。不同版本的Python环境如何切换呢,这里主要是通过Windows系统自带的环境环境变量进行切换。
软件架构师Michael
2022/10/15
2.6K0
MYSQL IN EXISTS LEFT JOIN 结果不同的问题?
随着问问题的同学越来越多,公众号内部私信回答问题已经很困难了,所以建立了一个群,关于各种数据库的问题都可以,目前主要是 POSTGRESQL, MYSQL ,MONGODB ,POLARDB ,REDIS 等,期待你的加入,加群请添加微信liuaustin3.
AustinDatabases
2023/02/28
1.8K0
MYSQL IN EXISTS LEFT JOIN 结果不同的问题?
C#: 不同的方式检查Null
检查参数值是否为空的经典方法是什么?如果您已经使用C语言开发了一段时间,您可能会熟悉以下经典语法:
JusterZhu
2022/12/07
4570
C#: 不同的方式检查Null
检查参数值是否为空的经典方法是什么?如果您已经使用C语言开发了一段时间,您可能会熟悉以下经典语法:
沙漠尽头的狼
2021/12/01
5190
isa 指针中不同的位代表不同的含义
对象.isa -> 类.super -> 父类.super -> 根类.super -> nil
艳艳代码杂货店
2021/09/26
9590
让代码更优雅:JAVA代码不同JDK版本的不同写法
JDK不同版本有不同的特性,我刚毕业时候JDK1.8(8)已经出现了,但是大多公司还在用1.6(6),后面陆续出现了9、10、11、12,但是大多公司仍然坚守在1.6版本,逐渐在向1.8靠拢。
品茗IT
2020/09/22
1K0
如何在 Helm Chart 中兼容不同的 Kubernetes 版本?
随着 Kubernetes 的版本不断迭代发布,很多 Helm Chart 包压根跟不上更新的进度,导致在使用较新版本的 Kubernetes 的时候很多 Helm Chart 包不兼容,所以我们在开发 Helm Chart 包的时候有必要考虑到对不同版本的 Kubernetes 进行兼容。
我是阳明
2021/11/17
1.5K0
VC 不同版本代码注入的改进
在上篇文章中 《VC 不同版本代码注入的区别》 ,我们想要对目标进程进行代码的注入,由于 Debug 版编译生成的代码和 Release 版编译生成的代码有些不同(Debug 版编译后,调用函数时会有一条 jmp 指令,而 Release 没有),因此,通过 #ifdef 这样的宏来区别 VC 是以 Debug 版方式编译,还是通过 Release 版方式编译,从而编译不同的代码来针对不同的版本进行了处理。代码如下:
码农UP2U
2023/09/02
1570
VC 不同版本代码注入的改进
Rstudio关联本地不同版本的R
前面提到过Rstudio是一个很好的R集成开发环境,但实际上Rstudio本身是没有太多功能的,它只提供一个可视化的环境,实际上背后还是要调用你本地装的R和R包。那么Rstudio是如何跟本地的R关联起来的呢?
生信交流平台
2022/09/21
1.9K0
Rstudio关联本地不同版本的R
点击加载更多

相似问题

jQuery -在单击事件上切换localStorage

38

在事件上绑定jquery事件

28

在jQuery中更改绑定事件

12

jQuery绑定对象上的所有事件

16

jQuery将更改事件绑定到所有类元素

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档