【发布时间】:2018-12-07 20:54:40
【问题描述】:
我即将为MediaWiki 创建一个扩展,我想在其中提供一个显示表单的特殊页面。对于这种形式,我想使用包括 jquery 和 popper.js 的 Bootstrap。因此我需要在 Extension 中包含 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 属性),样式就会按预期应用。但是当我添加scriptproperty 时,不仅没有应用脚本,而且不再应用样式。好像我在模块定义中做错了什么,但我不知道是什么。
有没有人有任何线索或想法?
您好, 雅各布
编辑:
我忘了提,它似乎与 jquery、popper 或 bootstrap 的 js 文件无关,因为当我只包含 ext.meForm.custom.js 时它的行为相同,实际上它只是一个空的 js 文件。
我得到的唯一控制台输出是来自第 1 行 load.php 的 SyntaxError: expected expression, got '<'。
我正在使用 Mediawiki 版本 1.30.1。
编辑: 现在可以了。问题似乎是另一个在加载时出错的扩展。我真的不知道这会如何导致我的扩展无法正确加载模块,但确实如此。
【问题讨论】:
-
您的资源模块定义似乎是正确的,可能出错的是 Mediawiki 已经捆绑了 jQuery,因此您可能遇到了同时加载的两个 jquery 库的冲突。在不知道控制台输出的情况下很难为您提供帮助。
-
您好,感谢您的回复!我忘了说,它似乎与 jquery、popper 或 bootstrap 的 js 文件无关,因为当我只包含
ext.meForm.custom.js时,它的行为是相同的,实际上它只是一个空的 js 文件。我得到的唯一控制台输出是来自第 1 行的load.php的SyntaxError: expected expression, got '<'。我已将error_reporting( -1 );和ini_set( 'display_errors', 1 );添加到LocalSettings.php的顶部。是否有更多选项可以获得更多输出? -
这听起来你在资源解析过程中遇到了某种 PHP 异常,请尝试检查 devtools 控制台以查看
load.php的实际输出 -
好的,我刚刚查看了load.php输出,发现错误输出不是我的扩展引起的,而是安装了另一个扩展。所以我从
LocalSettings和tada 中删除了这个:令人惊讶的是,我的扩展一切顺利。因此,这似乎是由 mediawikis 加载行为和另一个扩展的加载错误引起的错误。感谢您引导我走向正确的方向。
标签: javascript mediawiki mediawiki-extensions