在 MediaWiki 扩展中加载 js 不起作用

Loading of js in MediaWiki extension doesn't work

我要为 MediaWiki 创建一个扩展,我想在其中提供一个显示表单的特殊页面。对于此表单,我想使用 Bootstrap,包括 jquery 和 popper.js。因此我需要在扩展中包含 js 文件。

通常样式和脚本文件包含在 extension.json 中,如下所示:

"ResourceModules": {
"ext.meForm.custom": {
  "position": "top",
  "scripts": [
    "jquery-3.3.1.slim.min.js",
    "popper.min.js",
    "bootstrap.min.js",
    "ext.meForm.custom.js"
  ],
  "styles": [
    "bootstrap.min.css",
    "icons.css",
    "ext.meForm.custom.css"
  ]
}

},

然后需要在特殊页面execution中加载它们,方法如下:

$output->addModuleScripts('ext.meForm.custom');
$output->addModuleStyles('ext.meForm.custom');

当我只包含样式文件(只需删除 scripts 属性)时,样式就会按预期应用。但是当我添加 script属性 时,不仅脚本没有应用,而且样式也不再应用。好像我在模块定义中做错了什么,但我不知道是什么。

有没有人有任何线索或想法?

您好, 雅各布

编辑: 我忘了说,它似乎与 jquery、popper 或 bootstrap 的 js 文件无关,因为当我只包含 ext.meForm.custom.js 时它的行为是一样的实际上只是一个空的js文件。

我得到的唯一控制台输出是来自第 1 行 load.phpSyntaxError: expected expression, got '<'

我正在使用 Mediawiki 版本 1.30.1。

编辑: 现在可以了。问题似乎是另一个扩展在加载时出错。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。

addModuleScripts 并不是很有用(也已弃用)。试试 $output->addModule('ext.meForm.custom');.

现在可以使用了!

问题似乎出在另一个扩展程序加载时出错。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。