MediaWiki:Gadget-edit0.js
外观
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/* [[en:MediaWiki:Gadget-edittop.js]] */
/* ES5-Compliant Fix | Preserves Original Logic | 2024-06-25 */
(function($, mw) {
"use strict";
// 1. 严格匹配原生效条件(view/purge + 非负命名空间)
if ($.inArray(mw.config.get('wgAction'), ['view', 'purge']) === -1 || mw.config.get('wgNamespaceNumber') < 0) {
return;
}
$(function edittop_hook() {
// 2. 多语言配置(原封不动保留)
var localtitles = {
bg: 'Редактиране на началото',
bn: 'সূচনা অনুচ্ছেদ সম্পাদনা করুন',
cs: 'Editovat úvodní sekci',
en: 'Edit lead section',
fa: 'ویرایش بخش آغازین',
fr: 'Modifier le résumé introductif',
id: 'Sunting bagian atas',
it: 'Modifica della sezione iniziale',
ja: '導入部を編集',
kk: 'Кіріспе бөлімді өңдеу',
min: 'Suntiang bagian ateh',
ko: '도입부를 편집',
pa: 'ਸੋਧ',
pt: 'Editar a seção superior',
'pt-br': 'Editar a seção superior',
sr: 'Уреди уводни део',
vi: 'Sửa phần mở đầu',
// 中文变体(原样保留)
zh: '编辑首段',
'zh-hans': '编辑首段',
'zh-cn': '编辑首段',
'zh-sg': '编辑首段',
'zh-my': '编辑首段',
'zh-hant': '編輯首段',
'zh-hk': '編輯首段',
'zh-mo': '編輯首段',
'zh-tw': '編輯首段'
};
// 3. 内容容器选择(增强兼容性)
var our_content = $('#content, #mw_content, .mw-content-container, .mw-body-content').first();
if (our_content.length === 0) return;
// 4. 克隆按钮(添加防NaN保护)
var originalSpan = our_content.find('span.mw-editsection:not(.plainlinks):first');
if (originalSpan.length === 0) return;
var clonedSpan = originalSpan.clone();
// 5. 挂载到标题区域(兼容更多皮肤)
var titleContainers = [
'#mw-page-title-main', // Vector 2022
'#firstHeading', // Vector Legacy
'.page-heading', // Minerva
'.firstHeading' // Monobook
];
var $title = $(titleContainers.join(',')).first();
if ($title.length === 0) return;
// 6. 处理编辑链接(严格对齐原逻辑)
clonedSpan.find('a').each(function() {
var $a = $(this);
var href = $a.attr('href') || '';
var userLang = mw.config.get('wgUserLanguage');
var buttonText = localtitles[userLang] || localtitles[userLang.split('-')[0]] || localtitles.en;
$a.attr('title', buttonText);
// 核心URL处理逻辑(保持原业务规则)
if (!/(&|\?)section=T/.test(href)) {
// 普通编辑
$a.attr('href', href.replace(/(&|\?)(ve)?section=\d+/, '$1$2section=0&summary=/*%20top%20*/'));
} else if (/&vesection=/.test(href)) {
// 可视化编辑器
$a.attr('href', mw.util.getUrl(mw.config.get('wgPageName'), {
veaction: 'edit',
vesection: '0',
summary: '/* top */'
}));
} else {
// 传统编辑器
$a.attr('href', mw.util.getUrl(mw.config.get('wgPageName'), {
action: 'edit',
section: '0',
summary: '/* top */'
}));
}
});
// 挂载克隆按钮(保留原DOM结构)
$title.append($('<span class="mw-editsection"></span>').append(clonedSpan));
});
})(jQuery, this.mw || window.mw); // 双保险mw对象获取