MediaWiki:Gadget-tradsim-trad2sim.js

注意:儲存之後,你可能要兜過你嘅瀏覽器快取至睇到更改。Internet Explorer: 撳住Ctrl掣再撳重新整理掣。 Firefox: 撳住Shift掣再撳重新載入(又或者撳Ctrl-Shift-R)。 Google Chrome同埋Safari用戶就噉撳個重載掣。

mw.loader.using( [ 'mediawiki.storage', 'mediawiki.util' ], function () {
	var rawSkin = mw.config.get( 'skin' );
	window.HanTSVersion = '20231026';
	var origHTML = document.getElementById( 'mw-content-text' ).innerHTML;
	var origHeadElem =
		document.getElementById( 'firstHeading' ) ||
		document.getElementById( 'section_0' );
	var origHeadHTML = origHeadElem ? origHeadElem.innerHTML : '';
	var skin = rawSkin.slice( 0, 6 ) === 'vector' ? 'vector' : rawSkin;

	var portletLink = getPortletLink( '简', '睇简体', newtrad2sim );
	if ( mw.storage.get( 'trad2sim' ) === 'sim' ) {
		newtrad2sim();
	}

	function getPortletLink( text, tooltip, callback ) {
		var link = mw.util.addPortletLink(
			skin === 'vector' || skin === 'timeless' ? 'p-views' : 'p-cactions',
			'#',
			text,
			'ca-conv',
			tooltip,
			'',
			'#ca-view'
		);
		link.onclick = function ( e ) {
			e.preventDefault();
			callback();
		};
		return link;
	}

	function newtrad2sim() {
		document.getElementById( 'mw-content-text' ).innerHTML = window
			.newtrad2simcore( ' ' + document.getElementById( 'mw-content-text' ).innerHTML )
			.slice( 1 );
		origHeadElem.innerHTML = window
			.newtrad2simcore( ' ' + origHeadElem.innerHTML )
			.slice( 1 );

		portletLink.remove();
		portletLink = getPortletLink( '原', '复原', simrestore );
		mw.storage.set( 'trad2sim', 'sim' );
	}

	function simrestore() {
		document.getElementById( 'mw-content-text' ).innerHTML = origHTML;
		origHeadElem.innerHTML = origHeadHTML;

		portletLink.remove();
		portletLink = getPortletLink( '简', '睇简体', newtrad2sim );
		mw.storage.remove( 'trad2sim' );
	}
} );