Jump to content

User:Izno/persistentParams.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
$( () => {
	'use strict';
	mw.loader.using( 'mediawiki.util', () => {
		[ 'uselang', 'useskin' ].forEach( param => {
			if ( mw.util.getParamValue( param ) ) {
				$( 'a' ).each( ( i, e ) => {
					$( e ).attr( 'href', ( ind, old ) => {
						if ( e.href ) {
							const url = new URL( e.href );
							const base = url.origin + url.pathname;
							const searchParams = new URLSearchParams( url.searchParams );
							searchParams.set( param, mw.util.getParamValue( param ) );
							return base + '?' + searchParams.toString() + url.hash;
						}
					} );
				} );
				$( 'form' ).each( ( i, e ) => {
					$( e ).attr( 'action', ( ind, old ) => {
						if ( !old.includes( '#' ) ) {
							return old + '&' + param + '=' + mw.util.getParamValue( param );
						}
					} );
				} );
			}
		} );
	} );
} );