MediaWiki 开发者手册/添加 JavaScript/预定义变量
这些变量的使用已过时。请使用 mw.config 代替。因此,我们不再使用 "var wgCanonicalNamespace",而是使用 "var mw.config.get( 'wgCanonicalNamespace' )"。 |
var wgScript = "/w/index.php";
var wgArticlePath = "/wiki/$1":
var wgServer = "//wikibooks.cn";
var wgCookiePrefix = "enwikibooks";
使用 wgServer
和 wgScript
,您可以构建一个有效的维基 URL。这对于差异和其他操作链接非常有用。
要转到维基媒体维基上的页面,您知道 http://lang.family.org/wiki/article 会将您带到您想要去的地方,但并非所有维基都具有 短 URL - 在这种情况下,使用 wgArticlePath
来了解如何构建文章路径,或者直接使用 wgServer
和 wgScript
。
变量 wgArticlePath
可以通过将 $1 替换为页面标题来使用:wgArticlePath.replace(/$1/,"Main Page")
。
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "MediaWiki_Developer\'s_Handbook/Add_JavaScript";
var wgTitle = "MediaWiki Developer\'s Handbook/Add JavaScript";
var wgAction = "view";
var wgIsArticle = true;
var wgCanonicalNamespace = "Special";
var wgCanonicalSpecialPageName = "Specialpages";
var wgNamespaceNumber = -1;
var wgPageName = "Special:SpecialPages";
var wgTitle = "SpecialPages";
规范命名空间不会因本地化而改变。例如,在 kmwiki 上,他们的元数据或项目命名空间具有 wgCanonicalNamespace == "Project"
,而在 km:ជំនួយ:Editing 上,wgCanonicalNamespace == "Help"
。
同样,每个命名空间都有一个数字,从主命名空间的零开始。这些数字是 可定制的。
这对于使脚本可移植非常有用 - 您不必担心了解命名空间的本地化名称 - 只需使用规范名称或数字即可。
由于此页面位于主命名空间中,wgPageName == wgTitle
,但在 维基教科书:关于 上,情况并非如此。
var wgPageName = "Help:About";
var wgTitle = "About";
wgTitle 从不包含命名空间前缀,而 wgPageName 包含。还要注意,wgPageName 将空格替换为下划线。
wgAction 是以下之一:
- view
- submit(点击保存页面、显示预览或显示更改后)
- history
- edit
- delete
- protect
- purge(在进行
?action=purge
以清除服务器缓存,强制重新渲染页面时)
这揭示了用户在当前页面上的操作。请注意:对于用户而言,在许多情况下,view、submit 和 purge 可能没有区别。在某些情况下,您可能希望您的脚本在所有这些情况下都运行。
wgAction 通常用于在不需要时避免运行整个脚本。如果您的脚本更改了页面历史记录表单,那么您可以执行以下操作:
if ( wgAction == 'history' ) {
addOnloadHook( changeHistoryForm() );
}
function changeHistoryForm() {
...
}
wgIsArticle 告诉您页面是文章还是 特殊页面。
var wgCanonicalNamespace = "Special";
var wgCanonicalSpecialPageName = "Specialpages";
var wgNamespaceNumber = -1;
var wgPageName = "Special:SpecialPages";
var wgTitle = "SpecialPages";
对于 特殊页面,规范命名空间为 "Special",而 wgCanonicalSpecialPageName 是特殊页面的英文非 驼峰式 名称。同样,规范形式不会因本地化而改变,因此最好使用它。此外,所有特殊页面都具有命名空间编号 -1。
var wgUserName = "Mike.lifeguard";
var wgUserGroups = ["bureaucrat", "checkuser", "editor", "sysop", "*", "user", "autoconfirmed"];
var wgGlobalGroups = ["Global_rollback", "steward"];
用户的用户名设置为 wgUserName,他们的本地和全局组位于数组中。请注意,全局组 全局回滚 有一个下划线,而不是空格。
这在脚本的一部分需要用户属于特定用户组(通常是 sysop)时非常有用。
function userIsInGroup( group ) {
// are they in a given local group?
if ( wgUserGroups ) {
if ( !group || group.length == 0 ) {
group = '*';
}
for(var i in wgUserGroups)
if (wgUserGroups[i]==group) return true;
}
return false;
}
if ( userIsInGroup( 'sysop' ) ) {
...
}