跳转到内容

MediaWiki:Gadget-collapsibleTables.js

维基百科,自由的百科全书

这是本页的一个历史版本,由AnYiLin留言 | 贡献2021年3月23日 (二) 14:05 (临时修复(等Module:Navbox修改))编辑。这可能和当前版本存在着巨大的差异。

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
/**
 * Collapsible tables; reimplemented with mw-collapsible
 * Styling is also in place to avoid FOUC
 *
 * Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
 * @version 3.0.0 (2018-05-20)
 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
 * @author [[User:R. Koot]]
 * @author [[User:Krinkle]]
 * @author [[User:TheDJ]]
 * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
 * is supported in MediaWiki core. Shimmable since MediaWiki 1.32
 *
 * @param {jQuery} $content
 */
function makeCollapsibleMwCollapsible($content) {
	var $tables = $content
		.find('table.collapsible:not(.mw-collapsible)')
		.addClass('mw-collapsible');

	$.each($tables, function (index, table) {
		// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');
		if ($(table).hasClass('collapsed')) {
			$(table).addClass('mw-collapsed');
			// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');
		}
	});
	if ($tables.length > 0) {
		mw.loader.using('jquery.makeCollapsible').then(function () {
			$tables.makeCollapsible();
		});
	}
}
mw.hook('wikipage.content').add(makeCollapsibleMwCollapsible);

/**
 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
 *
 * Maintainers: TheDJ
 */
function mwCollapsibleSetup($collapsibleContent) {
	var $element,
	$toggle,
	autoCollapseThreshold = 2;
	$.each($collapsibleContent, function (index, element) {
		$element = $(element);
		if ($element.hasClass('collapsible')) {
			$element.find('tr:first > th:first').prepend($element.find('tr:first > * > .mw-collapsible-toggle'));
		}
		if ($collapsibleContent.length >= autoCollapseThreshold && $element.hasClass('autocollapse')) {
			$element.data('mw-collapsible').collapse();
		} else if ($element.hasClass('innercollapse')) {
			if ($element.parents('.outercollapse').length > 0) {
				$element.data('mw-collapsible').collapse();
			}
		}
		// because of colored backgrounds, style the link in the text color
		// to ensure accessible contrast
		$toggle = $element.find('.mw-collapsible-toggle');
		if ($toggle.length) {
			// Make the toggle inherit text color
			if ($toggle.parent()[0].style.color) {
				$toggle.find('a').css('color', 'inherit');
			}
		}
	});
	//临时修复(等Module:Navbox修改)
	if ($('.navbox-title>span').length > 0) $('.navbox-title>span').addClass('collapseButton').css('margin-left', '0').css('width', 'auto').removeAttr('role');
	mw.loader.using('mediawiki.util').done(function() {
		mw.util.addCSS('.navbox-title .navbar{width:auto}.navbox-title span+span{display:none}');
	});
	//临时修复
}
mw.hook('wikipage.collapsibleContent').add(mwCollapsibleSetup);