menu MediaWiki帮助 定位损坏脚本
异世界百科
导航 目录

定位损坏脚本

如果您在使用本地小工具或使用者脚本时遇到问题,那么这些问题通常是由损坏的JavaScript程式码(编写小工具所使用的程式语言)或其他程式码的未声明依赖关系所造成。

要找寻有问题需要修复的程式码和位置,您将需要使用网页浏览器的开发人员工具。 结合该工具和特殊的URL来使用,将能帮助您找出损坏的脚本。

如何使用

确保您有最新的配置

首先,请确保您的浏览器是最新版本。因为安全原因,旧版浏览器不支持MediaWiki的功能和某些脚本。

然后,清除页面的缓存,以强制页面根据源代码来重新显示或重新启动脚本。

这两点能解决大多数的问题。

如果您在网页浏览器上安装了“NoScript”之类的工具或广告拦截器,请确保已为wikipedia.org、wikimedia.org、mediawiki.org和wikidata.org启用了脚本。

测试您是否遇到与使用者脚本或小工具有关的问题

要测试您的问题是否与使用者脚本或小工具相关,您可以尝试暂时停用所有维基上的脚本和样式表。

要这么做,在您遇到问题的页面网址(URL)加入 safemode 参数(?safemode=1)。 例如: https://www.mediawiki.org/wiki/Help:Locating_broken_scripts?safemode=1

如果 URL 已经包含 ?,则附加 &safemode=1。 例如: https://www.mediawiki.org/w/index.php?title=Help:Locating_broken_scripts&safemode=1

如果您使用安全模式进行测试且浏览器是最新版,却仍然在页面上遇到问题,请与 MediaWiki 的开发人员联系(如何报告错误)。 如果使用安全模式就不再有问题,则表示使用者脚本或小工具存在问题。 您需要找出问题所在。

测试您是否遇到与浏览器扩充功能相关的问题

某些问题可能因为维基百科和某些浏览器扩充功能间相互影响造成的结果。 最简单的测试方法是,在停用所有扩充功能的情况下尝试相同的操作。要实现此操作的最简单方法是,在google chrome和firefox浏览器中使用“匿名浏览”或“访客模式”,其在预设情况下是停用所有扩充功能的。 如果该问题在匿名浏览中消失了,请尝试逐个暂时停用扩充功能来缩小范围,直到找到是“罪魁祸首”的扩充功能。

如果您发现问题确实与浏览器扩充功能有关,请考虑将其报告给该扩充功能的开发人员。 如果您决定在 Wikimedia wiki 的一个交流论坛上进行报告,请在您的报告中提及您的浏览器扩展。

找出问题

以下连结说明了如何在这些浏览器中进行此操作:

在打开它们之后,请在您看到问题的页面网址(URL)后附加 ?debug=true。 例如: https://www.mediawiki.org/wiki/Help:Locating_broken_scripts?debug=true

如果 URL 已经包含 ?,则附加 &debug=true。 例如: https://www.mediawiki.org/w/index.php?title=Help:Locating_broken_scripts&debug=true

如果JavaScript有问题,则应该会在开发人员工具的“控制台”中印出错误。

确保启用了“JavaScript”或“JS”,若可能则停用其他输出,让输出不会变得太吵杂:

在Wiki上使用Firefox的除错模式的结果范例。

单击右侧的档案名称。 这将打开“Debugger”视图。 右窗格将显示需要修复的代码。 ,左窗格将显示需要修复的档案(您可能需要滚动列表以找出被醒目标示的唯一档案)。 右键单击该档案,在新页签中打开需要修复的档案:

在Wiki上使用Firefox的除错模式的结果范例。

根据档案的“载入”方式,档案的确切URL可能不会很明显,因此您可能必须滚动到档案的顶部才能检视其名称。

此名称可能只是一个注解(类似于// Title)。

需要修复的问题可能在该Wiki上的本地MediaWiki:Common.js档案中、在您的个人档案中(例如User:MyUserName/common.js)(或在User:MyUserName/下您拥有的其他.js档案)、或在该Wiki上其中一个可用的小工具的程式码中、或该Wiki上MediaWiki:Gadgets-definition中定义的小工具代码依赖项中。

有关更多技术资讯,您可以查看如何切换除错模式

修复问题

您将能找到大多数的脚本,在Meta的m:Special:MyPage/global.js、本地的Special:MyPage/common.jsSpecial:MyPage/vector.js(如果您使用不同的外观,则在类似名称的页面中,例如如果您使用MonoBook外观,则是Special:MyPage/monobook.js)、任何在本地Special:Preferences#mw-prefsection-gadgets中选中的项目。

脚本的问题可能由不同的原因造成,我们建议您与了解JavaScript的人联系来帮助您。(如果您具有JavaScript的基本技术知识,请参阅T164242以获取提示和其他资讯的连结。)

同时,您可以停用该脚本。

如果发现损坏的脚本是小工具,请在您的偏好设定中停用该小工具。

如果损坏的脚本在您的.js页面上,请透过注释脚本来停用它。在相关程式码的开头添加/* ,并在结尾添加*/

您也可以透过清空您.js页面中有关该脚本的每一行或是在每一行前面使用//注释,来停用该脚本。

其他定位损坏脚本的方法

  1. 注意您在账户上使用的小工具和脚本
  2. 停用账户上所有的脚本和小工具
  3. 重新启用小工具
  4. 清除您的快取
  5. 测试您是否仍遇到问题:
    • 如果没有,前往步骤3
    • 如果有,修复该脚本并回到步骤3以处理其他可能损坏的脚本

完全无关的小工具也可能破坏最奇怪的东西。 要缩小范围,请在偏好设定中小工具列表中关闭一部分的小工具,然后查看是否有帮助。 然后,如果这样不起作用,请尝试关闭另一部分的小工具。 最终,您将找到问题所在小工具的部分。 然后逐一关闭该部分中的小工具。 在执行任何操作之前,请对整个小工具偏好设定页面进行截图。 这样您才能改回自己喜好的设定。 Firefox具有内建的萤幕截图工具,可让您撷取整个页面,包括未在萤幕上显示的部分页面。

参阅