如何将自定义 javascript 文件(比如 custom.js
)添加到 mediawiki 安装?
例如,如果我将 custom.js
放在文件夹 resources/lib/
下,我如何让它加载到每个页面上?
我不想将此作为扩展的一部分,我更愿意将我的更改保留在 LocalSettings.php
中。
最佳答案
正如 garryp 已经建议的那样,您可以将 JavaScript 代码放入 MediaWiki:Common.js 中.请注意,这不是一个文件,而只是一个您可以在您的 wiki 上编辑(作为管理员)的页面。例如,这里是 MediaWiki:Common.js page on the English Wikipedia .
来自 Common.js 的 JavaScript 代码仅在 $wgUseSiteJs 时加载已启用。但是,这是默认设置,因此它应该可以工作,除非您通过在 LocalSettings.php 文件中添加类似 $wgUseSiteJs = false;
的行来故意禁用它。
也可以使用 ResourceLoader 从文件加载 JavaScript 代码,但这有点复杂。不过,举个简单的例子,如果你的 MediaWiki 主目录中有名为 foo/bar.js
和 foo/baz.js
的文件,你可以加载通过将以下代码添加到您的 LocalSettings.php 文件中:
// register a ResourceLoader module...
$wgResourceModules['custom.foo.whatever'] = array(
'scripts' => array( 'foo/bar.js', 'foo/baz.js' ),
// could e.g. add dependencies on core modules here
);
// ...and set up a hook to add it to every page
function addMyCustomScripts( &$out ) {
$out->addModules( 'custom.foo.whatever' );
return true;
}
$wgHooks['BeforePageDisplay'][] = 'addMyCustomScripts';
基本上,此方法主要对扩展作者有用,他们可以使用它来根据需要加载 CSS 和 JS 代码。 查看$wgResourceModules和 BeforePageDisplay文档以获取更多详细信息,包括其他模块选项(和 core modules )。
关于javascript - 如何将自定义全局 javascript 添加到 mediawiki,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29902768/