MediaWiki讨论:Gadgets-definition
跳转到导航
跳转到搜索
特殊:小工具
文档
由于resourceLoader会缓存代码,这有时会导致修改不能及时生效,可以通过在url末尾加入&debug=true
来解决这个问题
为什么要用Gadget
- 这个功能并不是所有人都需要
- 缩短Common.js和内联js的长度(这有助于加快页面的加载速度)
- 将一段代码注册进ResourceLoader
- 阻止移动前端破坏js代码
参数
后文中的模块都是ResourceLoader意义上的模块,而不是lua
Name | Parameters | Description | Since |
---|---|---|---|
ResourceLoader |
None | 标记gadget中的脚本与 ResourceLoader兼容。 | ? |
dependencies |
半角逗号分隔 模块名 | 这些模块将在当前gadget加载前准备就绪。注意:当当前gadget中没有与resourceLoader兼容的代码时,这个参数无效(比如没有css或js被标记位兼容的). | ? |
rights |
半角逗号分隔 权限名 | 使这个模块指对有这些权限的人有效 (和可见) 。 | ? |
hidden
|
None | 在参数列表页不现实这些gadget。 这有两种用途:
|
1.28 |
skins |
半角逗号分隔 皮肤名 | 使gadget指对使用了特定皮肤的人可用(和可见)。 | ? |
default |
None | 使模块被默认的启用(即使没有登录)。登录了的用户仍可以在参数列表中关闭 | 1.18 |
targets
|
desktop (default), mobile or desktop,mobile
|
为gadget设定ResourceLoader targer. 只填mobile的会导致错误[1] | ? |
type
|
styles or general
|
Use styles for modules that only modify styling for elements already on the page (e.g. when customising the skin, layout, or article content). 这会导致css通过<link rel="stylesheet"> 加载而不是通过resourceLoader。 [2].
|
1.28 |
peers
|
半角 逗号分隔 模块名 | 要求gadget中只有css (通常被隐藏). 这些gadget将比dependencies 的模块更早加载,而且即使JavaScript被禁用了也扔会加载[3].
|
1.29.0-wmf.11 (pre-release) |
|
None | (removed in 1.28) Makes the gadget to be top-loaded. This should be used sparingly, but may be needed for some initialization stuff like registering plugins with VisualEditor. | ? |
你可以加载额外的模块为了你的Gadget, 例如:
* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css
我们要求 ResourceLoader为了mygadget 加载模块jquery.ui
和 jquery.effects.clip
。注意:gadget不能依赖于脚本来自页面/文件/链接, 只能依赖已经在ResourceLoader中注册的模块.为了使来自页面的脚本依赖于另一个来自页面的脚本,两者都应该被写成gadget来在ResourceLoader将自己注册成模块,然后他们可以被通过以下语法依赖 :
* childgadget[ResourceLoader|dependencies=ext.gadget.parentgadget]|childgadget.js
为了使模块被默认启用,使用 "default
":
* mygadget[ResourceLoader|default|dependencies=mediawiki.util]|mygadget.js|mygadget.css
为了使模块指对有权限的人可用,设定 rights
参数. 例如,
* ImprovedDeletion [rights=delete] | ImprovedDeletion.js
这使得模块指对有删除页面的人可用。注意:限制基于权限而不是用户组 。例子:
* modrollback[ResourceLoader|rights=rollback]|modrollback.js * UTCLiveClock[ResourceLoader|rights=purge]|UTCLiveClock.js * Ajax_sysop[ResourceLoader|rights=patrol,rollback,markbotedits,delete]|Ajax_sysop.js