求一个JavaScript操作localStorage控制多个页面算法?

多个页面,只允许第一次打开的页面执行某个函数,以后打开的页面不执行这个函数。这个用localStorage比较容易实现。
难的需求是,关闭第一个页面后,如果存在其他页面,则选一个页面执行这个函数。
也就是始终保持只有一个页面执行这个函数。
当然全部页面都关闭后,就不用执行这个函数了。
求这个算法如何实现?最好有js代码

阅读 2.1k
2 个回答
  1. 给所有的控制页面设置一个常量 Id
  2. 给所有的控制页面添加 onloadvisibilitychange 事件,
    事件回调的逻辑是: 从 localStorage 中取出一个标志位, 如果标志位为 null ,执行你想要做的事, 然后更新标志位为当前页面的 Id
  3. 给所有的控制页面添加 onbeforeunload 事件,
    回调逻辑为: 从 localStorage 中取出标志位, 如果标志位为当前页面 Id, 就更新标志位为 null

给个思路:
既然所有页面都能访问localStorage,那直接把函数放到localStorage里面,然后每个页面都执行可以,外部再套一层节流函数

这样就能保证只执行一次

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题