javascript - Safari 没有触发 localStorage 事件
问题描述
我有一个像这样的简单页面:https ://samesite2.herokuapp.com/ (如此简单,您甚至可以查看其源代码......)。它有一个 localStorageEvent,当另一个选项卡打开时会触发。
var onLocalStorageEvent = function(e){
alert('old TAB');
};
window.addEventListener('storage', onLocalStorageEvent, false);
window.localStorage.setItem('openOnePage', Date.now());
如果您在另一个新选项卡中运行 url https://samesite2.herokuapp.com/ ,则会在前一个选项卡中显示一条警报,告诉用户这现在是一个“旧选项卡”。我在 Chrome、FireFox 上对此进行了测试,一切正常,直到..
当我在 iPhone 的 safari 上运行此页面时。我没有在新标签上复制和粘贴,而是单击 [打开此站点] 链接。
将出现另一个相同的选项卡,但在这种情况下,不会触发 localStorageEvent 并且根本不会显示任何警报。我到处搜索,但根本没有任何线索。这个问题有解决方案吗?请帮忙!
解决方案
推荐阅读
- c# - 创建自定义文件扩展名时,是否可以为其分配与应用程序图标不同的图标?
- c - fprintf() 以文本格式写入数据,无论我在 fopen() 中使用何种模式打开文件
- powershell - 使用原始构造函数扩展加速的 .Net 类
- c# - asp.net Identity Roles 组织单元结构创建
- android - 当我回到上一个视图 ViewPager2 时,ExoPlayer 没有播放 onViewRecycled
- javascript - 如何在 ejs 视图中访问 js 变量(在脚本标签内)作为 ejs 变量
- java - 如何在 Android 中避免单例
- php - Razorpay:BAD_REQUEST_ERROR 请提供您的 api 密钥以进行身份验证
- postgresql - 如何在不丢失数据的情况下控制数据库版本,更像是 github
- sql - 如何在 SELECT 查询中间进行调试?