在 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.php
的 SyntaxError: expected expression, got '<'
。
我正在使用 Mediawiki 版本 1.30.1。
编辑:
现在可以了。问题似乎是另一个扩展在加载时出错。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。
addModuleScripts
并不是很有用(也已弃用)。试试 $output->addModule('ext.meForm.custom');
.
现在可以使用了!
问题似乎出在另一个扩展程序加载时出错。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。
我要为 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.php
的 SyntaxError: expected expression, got '<'
。
我正在使用 Mediawiki 版本 1.30.1。
编辑: 现在可以了。问题似乎是另一个扩展在加载时出错。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。
addModuleScripts
并不是很有用(也已弃用)。试试 $output->addModule('ext.meForm.custom');
.
现在可以使用了!
问题似乎出在另一个扩展程序加载时出错。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。