如何为MediaWiki的InputBox启用AutoComplete?或有无替代扩展
为MediaWiki首页InputBox启用自动补全功能
我之前也碰到过一模一样的问题——原生的InputBox组件并不会自动绑定MediaWiki的搜索自动补全模块,毕竟这个模块默认只关联系统自带的顶部搜索框。不过有两个靠谱的解决方向,分享给你:
方法一:手动通过JS绑定内置的自动补全
这个方法不需要装扩展,用MediaWiki自带的功能就能搞定:
先给你的InputBox加个专属类,方便JS定位。修改你的InputBox代码为:
<inputbox type=search break=yes class="homepage-search-box"></inputbox>登录你的MediaWiki后台,找到
MediaWiki:Common.js页面(需要管理员权限),添加以下代码:$(document).ready(function() { // 找到我们标记的首页搜索框 const homeSearchBox = $('.homepage-search-box'); if (homeSearchBox.length) { // 加载MediaWiki内置的搜索建议模块并初始化 mw.loader.using('mediawiki.searchSuggest', function() { new mw.searchSuggest.SearchSuggest(homeSearchBox[0]); }); } });这段代码的作用是:页面加载完成后,定位到带有
homepage-search-box类的输入框,然后调用MediaWiki原生的搜索自动补全模块,和系统顶部搜索框的效果完全一致。保存后记得清除站点缓存,刷新首页就能看到效果了。
方法二:用扩展简化操作
如果不想写代码,也可以试试专门增强InputBox的扩展:
- InputBox Plus:扩展了原生InputBox的功能,直接支持自动补全,还能自定义搜索命名空间、提交按钮文案等细节,配置起来很省心。
- SearchBox Enhancements:除了自动补全,还能添加搜索历史记录、热门搜索推荐等功能,让搜索体验更贴近谷歌的感觉。
小提示
- 确保你的MediaWiki版本在1.23及以上,
mediawiki.searchSuggest模块是这个版本之后才正式引入的;如果是更老的版本,可以把代码里的mw.searchSuggest.SearchSuggest换成旧的mw.util.addSearchSuggest方法试试。 - 修改站点公共JS后,可能需要强制刷新浏览器缓存(Ctrl+F5)才能看到变化。
内容的提问来源于stack exchange,提问作者Fookiee
相关产品推荐
相关产品推荐

