MediaWiki:Common.js

来自科学ADV中文wiki
风落翎讨论 | 贡献2020年5月25日 (一) 15:15的版本
跳到导航 跳到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
// richtab

function richTabSetup( $content ) {
	$(".richtab > li > span > a").click(function(e) {
	    e.preventDefault();
		var richtab = $(this).closest(".richtab");
		var richtab_current = $(this).closest(".richtab > li");
		richtab.children().removeClass('active');
		richtab_current.addClass('active');
		var richtab_contents = richtab.next('.richtab-content');
		richtab_contents.children().removeClass('active');
		var richtab_index = richtab_current.prevAll().length;
	    var richtab_active_content = richtab_contents.children()[richtab_index];
	    $(richtab_active_content).addClass('active');
	})
}
mw.hook( 'wikipage.content' ).add( richTabSetup );

// 折叠支持

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 );

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' );
			}
		}
	} );
}

mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );

// 外链音乐-网易云音乐

function outChainMusic163Setup( $content ) {
	var $players = $content
		.find( '.outchainmusic-163' )
	
	$.each( $players, function ( index, player ) {
		var id = player.dataset.id;
        var type = player.dataset.type;
        if (!/^\d+$/.test(id)) return self.css('color', 'red').text('Error in outchain music data: Invalid id.');
        if (!/^\d+$/.test(type)) return self.css('color', 'red').text('Error in outchain music data: Invalid type.');
		var source1 = '<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?auto=1&height=66&';
		var source2 = 'type=' + type + '&id=' + id;
		var source3 = '"></iframe>';
		var source = source1 + source2 + source3;
		player.empty().append(source);
	});
}

mw.hook( 'wikipage.content' ).add( outChainMusic163Setup );