纯前端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>
相关推荐
@大迁世界13 小时前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
GIS之路13 小时前
GDAL 实现矢量裁剪
前端·python·信息可视化
是一个Bug13 小时前
后端开发者视角的前端开发面试题清单(50道)
前端
Amumu1213814 小时前
React面向组件编程
开发语言·前端·javascript
持续升级打怪中14 小时前
Vue3 中虚拟滚动与分页加载的实现原理与实践
前端·性能优化
GIS之路14 小时前
GDAL 实现矢量合并
前端
hxjhnct14 小时前
React useContext的缺陷
前端·react.js·前端框架
冰暮流星14 小时前
javascript逻辑运算符
开发语言·javascript·ecmascript
前端 贾公子14 小时前
从入门到实践:前端 Monorepo 工程化实战(4)
前端