我运行使用Topbar extension的MediaWiki网站。我最近将安装升级到MediaWiki主分支的最新版本:版本1.28.0-alpha(91e56cc)。
之后,Topbar扩展程序不再有效:
后一个问题可能是我的CSS问题(我不知道),但间歇性的行为让我感到担忧。因此,第一项业务是确保每次都至少出现topbar div。
这个扩展只是一个小的javascript,应该在页面加载时运行,在顶部(F
)附近添加一大块HTML。它这样做using a jQuery function。
不幸的是,我不是一个真正的Web开发人员,所以即使是这个简单的例程也有点过头了。
这就是我所知道的:
<div id="mw-writh-topbar" ...>
,但我现在不能重现它了。研究vaguely suggested可能是因为扩展程序没有使用新的ResourceLoader机制,因此我尝试migrate Topbar to use the ResourceLoader mechanism(通过Uncaught ReferenceError: jQuery is not defined
,然后maintenance/convertExtensionToRegistration.php
wfLoadExtension('Topbar')
但它似乎没有任何区别。LocalSettings.php
被添加到页面中。但我不知道css/Topbar.css
是否曾经运行过,如果是的话,会发生什么。那么:我该怎么调试呢?
答案 0 :(得分:1)
您需要将代码转换为使用ResourceLoader - 当前扩展使用OutputPage的addScriptFile()添加代码,并且假设jQuery在运行时可用。从MediaWiki 1.26开始,所有内容都异步加载,因此不起作用,因此需要将其转换为新系统。
这样做的说明如下:
两个注释:
RLQ.push( function(){ /* All of the code here */ } );
将代码包装在JS文件中。这将它全部推送到ResourceLoader的队列中,因此它将在jQuery 可用之后加载。我不推荐这个,但为了完整起见,请在此处显示。