纯前端js插件实现同一浏览器控制只允许打开一个标签,处理session变更问题

功能介绍

该功能通过纯前端实现,确保在同一浏览器中仅允许打开一个特定页面的标签页,避免重复打开造成的资源浪费或数据冲突。适用于需要严格单实例运行的Web应用场景。

下载地址:

https://download.csdn.net/download/gshzh00/92552909

引入方式 1:全局变量配置

在引入 JS 插件之前定义全局变量

  • 页面唯一标识(SINGLE_TAB_PAGE_TYPE):可加入当前用户信息,如加入登陆人id,该页面同一浏览器打开两个标签页,登录新用户后,其他标签提示自动关闭。

  • 页面关闭后跳转地址(SINGLE_TAB_REDIRECT_URL):自定义其他标签页跳转地址

引入方式 2:DOM 隐藏域配置(适合后端渲染场景)

在 body 中添加隐藏域,通过 id="single-tab-redirect-url" 配置:

复制代码
<!-- 1. 配置页面类型隐藏域 -->
<input type="hidden" id="single-tab-page-type" value="pageB">

<!-- 2. 配置跳转地址隐藏域 -->
<input type="hidden" id="single-tab-redirect-url" value="/403">

<!-- 3. 引入JS插件 -->
<script src="single-tab-system.js"></script>

引入方式 3:JS 标签 data 属性配置

在引入 JS 的 script 标签上通过 data-redirect-url 属性配置:

复制代码
<!-- 1. 配置页面类型(全局变量方式) -->
<script>
  window.SINGLE_TAB_PAGE_TYPE = 'pageA';
</script>

<!-- 2. 引入JS插件,通过data属性配置跳转地址 -->
<script 
  src="single-tab-system.js" 
  data-single-tab="true" 
  data-redirect-url="/login"
></script>
相关推荐
weixin_493503672 小时前
Vue3 前端生成 PDF:会员证书与活动签到表的三种打印方案与踩坑记录
前端·pdf·状态模式
李少兄3 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
尾善爱看海5 小时前
前端算法与手写题集
前端·算法
徐小夕5 小时前
JitWord 4.0 万字分享:从协同工具到AI Word操作系统,聊聊3年产品创业史
前端·vue.js·后端
shmily麻瓜小菜鸡6 小时前
JS/TS 易踩坑知识点 — 模块化与工程化类
开发语言·javascript·ecmascript
萧鼎7 小时前
Python 高性能Web框架神器 FastAPI:自动生成API文、基于Pydant、异步请求处理全搞定
前端·python·fastapi
IT_陈寒7 小时前
Redis误用keys命令把生产环境搞崩了,血的教训
前端·人工智能·后端
计算机魔术师8 小时前
5000亿估值冲刺科创板,DeepSeek 为何急着上市?
前端
我血条子呢8 小时前
前端解析word方案
前端·word
kyriewen8 小时前
我用 AI 写完一个需求后才发现,最难的不是 prompt,而是验收
前端·程序员·ai编程