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

功能介绍

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

下载地址:

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

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

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

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

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

    <script> // 页面类型唯一标识 window.SINGLE_TAB_PAGE_TYPE = 'pageA'+当前登陆人id; // 自定义跳转地址(支持相对路径/绝对路径) window.SINGLE_TAB_REDIRECT_URL = '/login'; // 示例:带参数的跳转地址 // window.SINGLE_TAB_REDIRECT_URL = '/error?code=403&msg=cross_page_conflict'; </script> <script src="single-tab-system.js"></script>

引入方式 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>
相关推荐
用户新3 小时前
V8引擎 精品漫游指南--Ignition篇(下 一) 动态执行前的事情
前端·javascript
@PHARAOH5 小时前
WHAT - GitLens vs Fork
前端
yqcoder5 小时前
前端性能优化:如何减少重绘与重排?
前端·性能优化
洋子6 小时前
Yank Note 系列 13 - 让 AI Agent 进入笔记工作流
前端·人工智能
wenzhangli78 小时前
Ooder A2UI 核心架构深度解析:WEB 拦截层的设计与实现
前端·架构
前端百草阁8 小时前
【前端性能优化全链路指南】从开发编写到构建运行的多维度实践
前端·性能优化
神探小白牙9 小时前
eCharts 多系列柱状图增加背景图
javascript·ecmascript·echarts
女生也可以敲代码9 小时前
AI时代下的50道前端开发面试题:从基础到大模型应用
前端·面试
ZhengEnCi9 小时前
M5-markconv自定义CSS样式指南 📝
前端·css·python
IT_陈寒9 小时前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端