admin 管理员组

文章数量: 1184232

需求

vue2项目,业务需求不能多开浏览器窗口,多开会导致数据统计异常,要求多开时跳转指定静态界面。

思路

有没有一种方法可以检测同一应用程序是否打开了多个浏览器选项卡。

解决方法

sysend.js 提供了跨浏览器tabs 数据同步的能力,利用了不少浏览器的特性 (localstoreage api 以及broadcastchannel api)
打开多个页签我们就能看到效果(注意无痕模式是不支持的,机制以及数据共享的问题)

代码

安装sysend

npm install sysend

或者CDN

https://unpkg/sysend

js

<script>
import sysend from 'sysend'
export default {
  created() {
    sysend.track('ready', () => {
      sysend.list().then(tabs => {
        if (tabs.length > 0) {
            window.close()
            // window.location.href = '../index.html'
            window.location.href = 'about:blank'
        }
      })
    })
  }
}
</script>

本文标签: 窗口 新开 浏览器 JS 多开则