查看: 77|回覆: 5

[教程] 免插件、DZ内置JS轻松实现外链访问二次确认对话提示框

[複製鏈接]

11

主題

63

回帖

10

積分

技术1级

金币
73
閲讀權限
10
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-4-12
發表於 2023-10-12 11:06:28 | 顯示全部樓層 |閲讀模式
原生JS轻松实现外链提示对话框,效果如图:


这是我基于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, '本域:admxn.com', '确定访问', '取消');
  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中即可。
DEMO:https://cn.admxn.com/

提示, 对话框, JS, 轻松, 实现
回覆

使用道具 舉報

5

主題

61

回帖

0

積分

热心网友

金币
61
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-12-24
發表於 2023-10-15 14:09:32 | 顯示全部樓層
感谢楼主{:4_104:}收藏备用{:4_111:}
回覆

使用道具 舉報

5

主題

3

回帖

0

積分

热心网友

金币
3
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-2-13
發表於 2023-10-18 17:26:26 | 顯示全部樓層
来得及时,非常感谢楼主!{:4_108:}
回覆

使用道具 舉報

0

主題

67

回帖

0

積分

热心网友

金币
67
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-7-11
發表於 2024-4-15 22:42:12 | 顯示全部樓層
测试了下,手机版好似无效
回覆

使用道具 舉報

11

主題

63

回帖

10

積分

技术1级

金币
73
閲讀權限
10
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-4-12
 樓主| 發表於 2024-4-16 08:59:27 | 顯示全部樓層

是的,是基于PC版内置的JS实现的
回覆

使用道具 舉報

0

主題

8

回帖

0

積分

热心网友

金币
8
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-5-13
發表於 2025-7-29 16:52:45 | 顯示全部樓層
这个好,马住~
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部