跳转到内容

User:SunAfterRain/js/CollapsibleToggle.js/NavFrameMigrate.js

维基百科,自由的百科全书
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ 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>