MediaWiki:Gadget-noteTAvector.js

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

$( function () {
	var xNoteTAVector = 'x-noteTAvector';

	function noteTAvector() {
		var associatedPages = document.getElementById( 'p-associated-pages' );
		var useLegacyMode = !associatedPages;
		var makeSpan = function () {
			return $( '<span style="padding:1px 3px; background: #d3e3f4; color:#000000;height:85%;">汉</span><span style="padding:1px 3px; background: #e9e9e9; color:#434343;height:85%;">漢</span>' );
		};
		var mapIndicatorLegacy = function() {
			$( '<a href="#">' ).html( makeSpan() )
				.click( function( e ) {
					e.preventDefault();
				} )
				.wrap( '<ul><li><span></span></li></ul>' )
				.parent().parent().parent().appendTo( this );
		};
		var mapIndicator = function () {
			makeSpan().appendTo( this );
		};
	
		var $node = $( 'body.skin-vector-legacy,body.skin-vector-2022' )
			.find( '.mw-indicator[id^=mw-indicator-noteTA-]' )
			.removeAttr( 'style' )
			.empty()
			.each( useLegacyMode ? mapIndicatorLegacy : mapIndicator );
	
		if ( useLegacyMode ) {
			$node.addClass( xNoteTAVector )
				.addClass( 'vector-menu' )
				.addClass( 'vector-menu-tabs' )
				.addClass( 'vector-menu-tabs-legacy' )
				.css( 'float', 'left' )
				.insertAfter( '#p-variants' );
		} else {
			if ( $node.length ) {
				var plink = mw.util.addPortletLink( 'p-associated-pages', '#', '' );
				plink.classList.add( xNoteTAVector );
				var plinkAnchor = plink.querySelector( 'a' );
				plink.style.maxHeight = '32px';
				if ( plinkAnchor ) {
					$node.appendTo( plinkAnchor );
				}
			}
		}
	}

	mw.hook( 'wikipage.content' ).add( function () {
		$( document.getElementsByClassName( xNoteTAVector ) ).remove();  // Will blink duing load preview, but this will avoid the icon won't removed if the TA template is removed, and avoid repeated click event listener from noteTAViewer.
		setTimeout( noteTAvector, 1 );
	} );
} );