MediaWiki:Gadget-edit0.js:修订间差异
外观
创建页面,内容为“// en:MediaWiki:Gadget-edittop.js // ********************************************************************** // ** ***WARNING GLOBAL GADGET FILE*** ** // ** changes to this file affaect many users. ** // ** please discuss on the talk page before editing ** // ** ** // *****************************************************…” |
小无编辑摘要 |
||
| (未显示同一用户的4个中间版本) | |||
| 第1行: | 第1行: | ||
/ | /* [[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对象获取 | |||
2025年11月2日 (日) 20:44的最新版本
/* [[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对象获取