外链跳转

外链跳转内容

版本 v1.0.1· 张先生 · 21 次获取 · 内容
帖子中的外部链接点击后弹出安全提醒,经可配置倒计时后再跳转目标站;本站与白名单域名直接放行。
免费

详情介绍

一、插件简介

外链跳转(extlink)在用户点击帖子正文中的 外部 http(s) 链接 时,弹出安全提醒弹窗,倒计时结束后自动跳转(或可点「立即跳转」)。本站域名白名单域名 不弹窗,直接打开。

同时提供中转页 /go?u=(路由 go)供直链跳转场景使用。

  • 前台入口:帖子详情正文内链接点击行为;中转页 /go
  • 后台入口:无独立后台菜单;配置在 应用中心 → 外链跳转 → 配置

二、核心能力

能力说明
正文标记filterHtml 给外部 <a>data-extlink="1"
弹窗提醒标题、正文、目标主机、倒计时、取消/跳转按钮
白名单每行一个域名;含本站与社区配置的站点域
倒计时0–120 秒;0 则需手动点跳转
中转页/go?u=编码URL;白名单直接 302
安全过滤不处理 javascript:mailto:、相对路径等

三、依赖与安装

建议环境:

  • 已安装 社区(community) 插件(帖子正文 filterHtml 钩子)

安装步骤:

  1. 应用中心安装并启用「外链跳转」
  2. 配置倒计时、提示文案与白名单
  3. 打开含外链的帖子,点击链接验证弹窗
  4. 点击本站或白名单链接应直接打开

数据表: 无;纯配置 + 静态资源。

四、应用中心基础配置

路径:应用中心 → 外链跳转 → 配置

配置项说明建议
启用外链提醒关闭后帖子外链不再弹窗开启
倒计时秒数3–8;0 不自动跳转5
白名单域名每行一个,不含协议常用 CDN、合作站
提醒标题弹窗标题即将离开本站
安全提示正文支持换行注意安全文案
显示立即跳转按钮可跳过倒计时建议开启

白名单示例:

github.com
cdn.jsdelivr.net

五、后台/重点配置

无后台业务页。文案与白名单均在应用中心配置即可。

六、前台用户流程

  1. 浏览 帖子详情,正文含外部链接
  2. 点击外部链接 → 弹出 安全提醒 弹窗,显示目标站点主机名
  3. 等待倒计时结束自动跳转,或点 立即跳转
  4. 取消 关闭弹窗留在本站
  5. 点击本站或白名单链接 → 无弹窗,直接打开

七、后台审核与运维

无审核。运维:

  • 根据投诉调整白名单
  • 适当延长倒计时提醒用户谨慎点击
  • 关闭 manual_jump 可强制等待倒计时

八、特殊说明

8.1 路由

方法路径说明
GET/go外链中转(参数 u

8.2 钩子

  • filterHtml($html, $context):由 HookService::filterHtml 调用
  • renderAssets():注入 extlink.css、弹窗 DOM、extlink.jswindow.EXTLINK_CFG

8.3 信任域名来源

  • 当前请求 host
  • CommunityPlugin::siteDomain()
  • 配置项 whitelist 逐行解析

子域名匹配:如白名单 example.com 可匹配 www.example.com

8.4 静态资源

/static/extlink/extlink.cssextlink.js(版本号随插件发布)。

九、推荐上线清单

  1. 启用外链提醒
  2. 写好标题与正文提示语
  3. 配置常用合作域名白名单
  4. 测试:外部链弹窗、白名单直通、取消与倒计时
  5. 移动端弹窗样式与滚动锁定检查

十、常见问题

Q:点击外链没弹窗? 检查「启用外链提醒」;链接是否为 http(s):// 绝对地址;是否已被白名单放行。

Q:所有链接都弹窗? 白名单格式错误(勿写 https:// 前缀整 URL,应写主机名)。

Q:弹窗不出现但也不跳转? 检查 extlink.js 是否加载;正文是否经 filterHtml 打上 data-extlink

Q:/go 报无效地址? 参数 u 须为合法 http(s) URL;编码需正确。

更新记录 (1)

  • v1.0.1 2026-08-24
    首次发布
微信客服 微信客服