useEffect挂钩,用于在用户关闭浏览器选项卡时保存到localStorage

彼得

我想保存key:valuelocalStorage使用的“清理回报”useEffect()挂钩。

这是我的代码:

  useEffect(() => {

    const onbeforeunloadFn = () => {
      localStorage.setItem('color', 'red')
    }

    window.addEventListener('onbeforeunload', onbeforeunloadFn);
    return () => {
      window.removeEventListener('onbeforeunload', onbeforeunloadFn);
    }
  }, [])

我什至尝试onbeforeunloadFn handler使用prevent默认行为并返回a,string但它也不起作用。遵循onbeforeunload文档

谁能解释我为什么或如何制作此代码,使其在用户关闭时才起作用browser tab谢谢

er

就像@AlexanderStaroselsky提到的那样,我认为您只是将事件名称误拼了一点。

useEffect(() => {

    const onbeforeunloadFn = () => {
      localStorage.setItem('color', 'red')
    }

    window.addEventListener('beforeunload', onbeforeunloadFn);
    return () => {
      window.removeEventListener('beforeunload', onbeforeunloadFn);
    }
  }, [])

有趣的是,您所引用文档英语版本有一个稍有不同的示例,该示例可能可以帮助您确定错误:

window.addEventListener("beforeunload", function(event) { ... });
window.onbeforeunload = function(event) { ... };

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

关闭浏览器窗口/选项卡时如何删除localStorage项目?

用户单击关闭选项卡时如何打开新窗口浏览器?

当用户关闭浏览器选项卡时,我想将数据发布到API

当用户关闭基于 django2.0 的网站上的选项卡或浏览器时,如何强制注销用户

清除选项卡/浏览器上的localStorage关闭,但不刷新

关闭浏览器选项卡时,ASP.NET Core 2.2注销用户-IsPersistent无效

即使用户关闭了Web浏览器/选项卡,如何运行Python 3功能?

Reactjs浏览器选项卡关闭事件

检测 Bokeh 中的浏览器选项卡关闭

JavaScript浏览器关闭事件(“ nob”选项卡)

在关闭浏览器选项卡上发送邮件

实施JWT存储以允许浏览器刷新但在选项卡/浏览器关闭时清除

是否可以在关闭浏览器/浏览器选项卡时清除所有cookie。在asp.net

使用Angular关闭浏览器窗口/选项卡时执行异步服务获取

当浏览器选项卡或窗口关闭时,是否会触发一般事件?

退出浏览器并关闭选项卡时发出警报

用户切换浏览器选项卡时如何从JApplet隐藏JDialog?

用户关闭任何特定标签时如何显示提示?(这是关于单个选项卡,而不是所有浏览器的)

angular 6 中的浏览器选项卡关闭事件仅适用于调试模式

ec2上的RStudio服务器-关闭浏览器选项卡时不持久

每当浏览器选项卡/窗口关闭时,Angular 应用程序就会变得不可用

如何在JS中关闭浏览器选项卡或浏览器关闭上的会话?

Javascript或angularjs推迟刷新之间的浏览器关闭或选项卡关闭

Python和Selenium-关闭所有选项卡而不关闭浏览器

用于 Wordpress 的 Ajax 选项卡,可在用户更改选项卡时加载并运行不同的短代码

使用Vue.js跨浏览器选项卡的反应性localStorage对象

当用户离开我的站点时如何在浏览器中更改选项卡名称

如何在浏览器或选项卡关闭上实现Session.Abandon()?

是否可以使用Java / Spring Boot关闭浏览器的当前选项卡