MediaWiki:Common.js
From The Volumes of Truth
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
+ | /** Popup links | ||
+ | * Use <span class="pops">[http://www.wikipedia.com Wikipedia]</span> | ||
+ | * or <span class="pops">[[Homepage|Home]]</span> | ||
+ | **/ | ||
+ | addOnloadHook( function() { | ||
+ | var pops = function( elems ) { | ||
+ | for (var i=0; i<elems.length; i++) { | ||
+ | if ( !(' '+elems[i].className+' ').match( / pops / ) ) | ||
+ | continue; | ||
+ | var anchs = elems[i].getElementsByTagName('a'); | ||
+ | for (var j=0; j<anchs.length; j++) anchs[j].target = '_blank'; | ||
+ | } | ||
+ | }; | ||
+ | var bc = document.getElementById('bodyContent'); | ||
+ | var tags = ['span', 'div', 'table', 'td', 'th']; | ||
+ | for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName( | ||
+ | tags[i] ) ); | ||
+ | } ); | ||
Current revision
/* Any JavaScript here will be loaded for all users on every page load. */
/** Popup links
* Use Wikipedia
- or Home
- /
addOnloadHook( function() {
var pops = function( elems ) { for (var i=0; i<elems.length; i++) { if ( !(' '+elems[i].className+' ').match( / pops / ) )
continue;
var anchs = elems[i].getElementsByTagName('a'); for (var j=0; j<anchs.length; j++) anchs[j].target = '_blank'; } }; var bc = document.getElementById('bodyContent'); var tags = ['span', 'div', 'table', 'td', 'th']; for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName(
tags[i] ) );
} );
/**
* @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'; } } ); } );
/**
* @source https://mediawiki.org/wiki/Snippets/Open_specific_external_links_in_new_window * @version 2018-09-15 */
$( function () { $( '#mw-content-text' ).on( 'click', '.newwin > a', function () { var otherWindow = window.open(); otherWindow.opener = null; otherWindow.location = this; return false; } ); } );
Click to share: