MediaWiki:Common.js

From The Volumes of Truth

Common.js
(New page: - Any JavaScript here will be loaded for all users on every page load. - - * * @source https://mediawiki.org/wiki/Snippets/Open_external_links_in_new_window * @version 2018-09-15 - m...)
Current revision (01:34, 23 September 2018) (edit) (undo)
 
(One intermediate revision not shown.)
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] ) );
 +
} );
 +
 +
 +
/**
/**
* @source https://mediawiki.org/wiki/Snippets/Open_external_links_in_new_window
* @source https://mediawiki.org/wiki/Snippets/Open_external_links_in_new_window
Line 19: Line 41:
this.target = '_blank';
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;
} );
} );
} );
} );

Current revision

/* Any JavaScript here will be loaded for all users on every page load. */

/** Popup links

* Use Wikipedia 

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:
this is a PNG