layui Tab怎么实现在Tab标签上右键直接复制当前页链接

小雪小哥_3367

小雪小哥_3367

2026-11-05

381人浏览

原创

Layui Tab组件可通过添加data-url属性、监听右键事件并调用navigator.clipboard.writeText实现URL复制功能,需注意iframe src存储、动态同步及兼容性处理。

layui tab怎么实现在tab标签上右键直接复制当前页链接

<p>在 Layui 的 Tab 组件中,默认不支持右键复制当前标签页的 URL,但可以通过监听 tab 标签的右键事件、获取对应 iframe 或页面的地址,再调用浏览器 API 实现复制功能。</p>

<h3>1. 给 tab 标签添加唯一标识和 URL 数据</h3>
<p>创建 tab 时,把目标页面 URL 存入 DOM 元素的 <strong>data-url</strong> 属性中,方便后续读取:</p>
<font color="#666">
<pre class="brush:php;toolbar:false;">
// 示例:添加新 tab 时
element.tabAdd('demo', {
  title: '用户管理',
  content: '<iframe src="/user/list" frameborder="0"></iframe>',
  id: 'user-list'
});
// 然后手动为刚生成的 tab 标签添加 data-url
$('.layui-tab-title .layui-this').attr('data-url', '/user/list');
// 或更稳妥的做法:在 tabAdd 后通过 id 定位并设置
$('.layui-tab-title li[lay-id="user-list"]').attr('data-url', '/user/list');

2. 监听 tab 标签的右键事件

利用事件委托监听 `.layui-tab-title li` 的 `contextmenu`(右键)事件,阻止默认菜单,并读取 `data-url`:

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
// 注意:需确保 DOM 已渲染完成(如放在 tabAdd 后或使用 element.on)
$(document).on('contextmenu', '.layui-tab-title li', function(e) {
  e.preventDefault(); // 阻止默认右键菜单
  const url = $(this).data('url');
  if (url) {
    copyToClipboard(url);
  }
});

3. 实现复制到剪贴板函数

使用现代浏览器支持的 navigator.clipboard.writeText,兼容性好且无需 input 模拟:

function copyToClipboard(text) {
  if (navigator.clipboard) {
    navigator.clipboard.writeText(text).then(() => {
      layer.msg('链接已复制', {icon: 1});
    }).catch(err => {
      console.error('复制失败:', err);
      layer.msg('复制失败,请手动复制', {icon: 2});
    });
  } else {
    // 降级方案:创建临时 input 复制
    const input = document.createElement('input');
    input.value = text;
    document.body.appendChild(input);
    input.select();
    document.execCommand('copy');
    document.body.removeChild(input);
    layer.msg('链接已复制', {icon: 1});
  }
}

4. 补充说明与注意事项

实际使用中需注意以下几点:

  • 如果 tab 内容是 iframe,data-url 应存 iframe 的 src,不是父页面地址
  • 若 tab 是纯 HTML 片段(非 iframe),可存路由路径(如 `/home`),由前端路由统一处理
  • 动态添加 tab 后,务必同步设置 data-url,否则右键无法获取链接
  • 建议在 `element.tabChange` 回调里更新当前 active tab 的 data-url,避免切换后失效

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

3280

4

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

360

5

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.15

3093

5

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.24

1161

6

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13.1万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.4万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习