TOOLS为非官方社区,欢迎一起建设,答疑群:717421103

版本260427.1

全站通知:

侧边导航栏

阅读

    

2026-06-12更新

    

最新编辑:本森级7号舰拉菲

阅读:

  

更新日期:2026-06-12

  

最新编辑:本森级7号舰拉菲

来自ToolsWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
本森级7号舰拉菲
侧边导航栏
小工具稳定
通过MediaWiki API异步读取并解析原生MediaWiki:Sidebar页面的配置,在前端动态构建出层级分明、支持折叠、且包含全站搜索功能的侧边导航栏喵。
作者Gemini,GPT,Deepseek
本森级7号舰拉菲

一个为 WIKI 定制的动态响应式侧边栏导航小工具喵。它通过 MediaWiki API 异步读取并解析原生 MediaWiki:Sidebar 页面的配置,在前端动态构建出层级分明、支持折叠、且包含全站搜索功能的侧边导航栏喵。

特点

安全性
  • 完全使用 DOM API 创建元素,杜绝 XSS
  • 链接生成经过严格过滤:拦截 javascript:/data:/vbscript:,拒绝协议相对链接,对绝对 URL 进行字符白名单检查。
  • localStorage 操作均有 try-catch 保护,不会因隐私模式或存储满抛出异常。
健壮性
  • mw.Titlemw.util.getUrl 均有防御性检查与降级方案。
  • 解析空白行已过滤,不会产生空链接。
  • resize 事件有防抖,且宽度无变化时直接跳过,性能良好。
  • 手风琴折叠逻辑通过闭包安全捕获元素,无全局干扰。
无障碍性
  • 可折叠子标题正确使用 <button> 元素(type="button"),原生支持键盘交互,且配有 aria-expanded 状态更新。
  • 切换按钮有完整的 roletabindexaria-labelaria-expanded 支持。
  • 搜索输入框有 aria-label
功能
  • 三级菜单支持,子标题与普通二级项智能区分。
  • PC 端记忆侧边栏展开/折叠状态(localStorage),移动端始终默认隐藏且不保存状态。
  • 自动滚动到当前激活项,深度优先选择最具体的激活元素,并处理了侧边栏初始隐藏的情况。
  • 响应式自动折叠:宽度 < 992px 时强制隐藏,且不会污染记忆。
  • 支持与BWIKI原导航栏共存,且互不干扰。


需要的页面

MediaWiki:Gadget-Sidebar.js

二选一即可


MediaWiki:Gadget-Sidebar.css

二选一即可


MediaWiki:Gadget-Sidebar

Sidebar:侧边导航栏。

MediaWiki:Gadgets-definition

此页面添加: * Sidebar[ResourceLoader|default]|Sidebar.js|Sidebar.css


示例


作者

思路:
本森级7号舰拉菲


代码实现:

Gemini & GPT & Deepseek