Snippets/Open external links in new window

From MediaWiki.org
Jump to navigation Jump to search
How to use Snippets
List of Snippets
Crystal Clear action run.png
Open external links in new window
Language(s): JavaScript
Compatible with: MediaWiki 1.22+ (Vector; Monobook; Modern)

LocalSettings.php[edit]

Since MediaWiki 1.14 it is possible for site administrator to configure a wiki to always open external links in a new window, using the $wgExternalLinkTarget setting:

$wgExternalLinkTarget = '_blank';

Code[edit]

/**
 * @source https://mediawiki.org/wiki/Snippets/Open_external_links_in_new_window
 * @version 2018-09-15
 */
mw.hook( 'wikipage.content' ).add( function( $content ) {
	// Second selector is for external links in Parsoid HTML+RDFa output (bug 65243).
	$content.find( 'a.external, a[rel="mw:ExtLink"]' ).each( function () {
		// Can't use wgServer because it can be protocol relative
		// Use this.href property instead of this.getAttribute( 'href' ) because the property
		// is converted to a full URL (including protocol)
		if ( this.href.indexOf( location.protocol + '//' + location.hostname ) !== 0 ) {
			if ( this.rel.indexOf( 'noopener' ) < 0 ) {
				this.rel += ' noopener'; // the leading space matters, rel attributes have space-separated tokens
			}
			if ( this.rel.indexOf( 'noreferrer' ) < 0 ) {
				this.rel += ' noreferrer'; // the leading space matters, rel attributes have space-separated tokens
			}
			this.target = '_blank';
		}
	} );
} );

See also[edit]