You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改MediaWiki代码实现全局JS与Vector皮肤专属JS加载?

在MediaWiki中实现全局JS+专属皮肤JS的加载配置

很简单!你只需要在现有的资源模块配置里,仿照skinStyles的写法添加skinScripts字段就行——MediaWiki的资源模块系统对JS和CSS的皮肤专属支持逻辑是完全对称的。

下面是修改后的完整代码,直接替换你原来的片段即可:

$wgResourceModules['zzz.customizations'] = array(
    'styles' => "skin.css", // 全局加载的样式文件
    // Vector皮肤专属样式(保留你原来的配置)
    'skinStyles' => array(
        'vector' => 'skin-vector.css',
    ),
    'scripts' => "skin.js", // 全局加载的脚本文件
    // 新增:Vector皮肤专属脚本
    'skinScripts' => array(
        'vector' => 'skin-vector.js',
    ),
    'localBasePath' => "$IP/customizations/",
    'remoteBasePath' => "$wgScriptPath/customizations/"
);

function efCustomBeforePageDisplay( &$out, &$skin ) {
    $out->addModules( array( 'zzz.customizations' ) );
}

关键说明:

  • skinScripts的用法和skinStyles完全一致:键是皮肤名称(比如vector),值是对应的JS文件名
  • 确保你的$IP/customizations/目录下存在以下文件:
    • skin.js:所有皮肤都会加载的全局脚本
    • skin-vector.js:仅Vector皮肤会加载的专属脚本
    • 原来的skin.css和skin-vector.css也需要保留在该目录下
  • 如果以后需要给其他皮肤添加专属JS,只需要在skinScripts数组里新增条目即可,比如:
    'skinScripts' => array(
        'vector' => 'skin-vector.js',
        'monobook' => 'skin-monobook.js' // 新增Monobook皮肤专属脚本
    )
    

内容的提问来源于stack exchange,提问作者Greg Fuller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:30:19