javascript - 如何将自定义全局 javascript 添加到 mediawiki

标签 javascript loading wikimedia

如何将自定义 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.jsfoo/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 代码。 查看$wgResourceModulesBeforePageDisplay文档以获取更多详细信息,包括其他模块选项(和 core modules )。

关于javascript - 如何将自定义全局 javascript 添加到 mediawiki,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29902768/

相关文章:

javascript - qTip2 渲染位置错误

javascript - 在 JavaScript 中确定操作系统换行符

javascript - HTML5 Canvas 圆形文本

android - 有没有办法将 Activity 加载到屏幕的特定部分?

metadata - 获取维基数据项目查看次数/受欢迎程度指数

javascript 在博主帖子中不起作用

css - 如何使 JPG 仅在悬停时加载?

html - 在我的网站上使用维基媒体图片

parsing - 如何解析维基词典API?

c# - 如何在加载应用程序时显示图像