User:SunAfterRain/js/CollapsibleToggle.js/NavFrameMigrate.js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
警告:User:SunAfterRain/js下的所有script幾乎都是本人隨興撰寫的,不保證可用性。如要使用,請確保您的瀏覽器支援ES6、async & await等語法糖,並接受本人突然改變任何內容以至於用法改變或是毀損無法使用。任何問題請至:User talk:SunAfterRain
/**
* CollapsibleToggle.js/NavFrameMigrate.js
* NavFrame 向後兼容用。
* 請注意,和現行 NavFrame 的解析程式完全不兼容!
*
* @author [[User:SunAfterRain]]
*/
/* _addText: {{User:SunAfterRain/js}} */
// <nowiki>
$.when(
$.ready,
mw.loader.using('jquery.makeCollapsible')
).then(() => {
mw.hook('wikipage.content').add(($content) => {
for (const frame of $content.find('.NavFrame')) {
const $frame = $(frame).removeClass('NavFrame').addClass('mw-collapsible NavFrameMigrate');
if ($frame.hasClass('collapsed')) {
$frame.removeClass('collapsed').addClass('mw-collapsed');
}
const $oldHead = $frame.children('.NavHead')
.first()
.removeClass('NavHead');
const oldHeadStyle = $oldHead.get(0).style;
if ($oldHead.css('text-align') === 'center') {
// 適配置中
const $newHead = $('<div>')
.addClass('collapsible-title migrate-center');
if ($newHead.attr('style')) {
$newHead.attr('style', $oldHead.attr('style'));
}
$oldHead.removeAttr('style').replaceWith($newHead);
$newHead
.append(
$('<div>').css('width', '5%'),
$('<div>').css('width', '90%').append($oldHead),
$('<div>').css('width', '5%').append(
$('<span>')
.addClass('mw-collapsible-toggle-placeholder')
)
);
} else {
$oldHead
.addClass('collapsible-title')
.append(
$('<span>')
.addClass('mw-collapsible-toggle-placeholder')
);
}
$frame.children('.NavContent').removeClass('NavContent').addClass('mw-collapsible-content');
$frame.makeCollapsible();
}
});
});
// </nowiki>