找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

搜索
热搜: 视频 舞蹈 定制
返回列表 发新帖
查看: 36|回复: 0

Discuz!X3免插件、DZ内置JS轻松实现外链访问二次确认对话提示框

[复制链接]
发表于 2024-12-18 14:32:56 | 显示全部楼层 |阅读模式
原生JS轻松实现外链提示对话框,效果如图:

QQ20241218-143133.png

基于Discuz!内置的showDialog对话框给外部链接加以点击后弹出访问二次确认对话框,以做安全提示及免责效用,这也是当下各大平台都有设置的基本功能。

代码如下:
  1. <script>
  2.     // 外部链接安全提示
  3.     function jumpToExternalLink(link) {
  4.       const message = '您即将离开本站,请注意网络安全。<p class="wot">即将访问:' + link + '</p>';
  5.       showDialog(message, 'confirm', '即将访问外部链接', 'window.open(\'' + link + '\', \'_blank\')', 0, 2, '本域:fengge.me', '确定访问', '取消');
  6.     }
  7.    
  8.     function forLinks() {
  9.     // 获取页面中所有的链接元素
  10.     const links = document.querySelectorAll('a, [data-href]');
  11.    
  12.     // 遍历每个链接元素,并为其绑定点击事件
  13.     links.forEach((link) => {
  14.       const href = link.getAttribute('href') || link.getAttribute('data-href');
  15.    
  16.       // 判断链接是否为外部链接
  17.       if (href && href.startsWith('http') && !href.includes(window.location.host)) {
  18.         link.addEventListener('click', (event) => {
  19.           event.preventDefault();
  20.           jumpToExternalLink(href);
  21.         });
  22.         link.setAttribute('target', '_blank'); // 在新窗口中打开链接
  23.       }
  24.     });
  25.     }
  26.     forLinks();
  27. </script>
复制代码
将以上代码稍作修改后直接拷贝到如通用页脚模板文件footer.htm中即可。

相关帖子

温馨提示:看帖回帖是一种美德,您的每一次发帖,回帖都是对论坛最大的支持,谢谢!

论坛会员交流群号971981110 [这是默认签名,点我更换签名]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|峰哥论坛

GMT+8, 2024-12-28 15:57 , Processed in 0.094863 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表