「MediaWiki:Gadget-exlinks.js」の版間の差分

提供: ガンダムWiki
ナビゲーションに移動 検索に移動
(ページの作成:「// ********************************************************************** // ** ***WARNING GLOBAL GADGET FILE*** ** // ** chan...」)
 
(「外部リンクを新しいウィンドウ・タブで開く」をバージョン5に更新する)
 
(同じ利用者による、間の2版が非表示)
5行目: 5行目:
 
// **                                                                  **
 
// **                                                                  **
 
// **********************************************************************
 
// **********************************************************************
   
+
/**
$(function () {
+
* @source mediawiki.org/wiki/Snippets/Open_external_links_in_new_window
  var $alinks = mw.util.$content.find('a');
+
* @version 5
 
+
  */
  $alinks.each(function () {
+
mw.hook('wikipage.content').add(function($content) {
    var $tablink = $(this);
+
// Second selector is for external links in Parsoid HTML+RDFa output (bug 65243).
 
+
$content.find('a.external, a[rel="mw:ExtLink"]').each(function () {
    if ($tablink.hasClass('external') && $tablink.attr('href').indexOf(mw.config.get('wgServer')) !== 0) {
+
// Can't use wgServer because it can be protocol relative
      $tablink.attr('target', '_blank');
+
// 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) {
 +
this.target = '_blank';
 +
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
 +
}
 +
}
 +
});
 
});
 
});

2019年7月28日 (日) 11:23時点における最新版

// **********************************************************************
// **                 ***WARNING GLOBAL GADGET FILE***                 **
// **             changes to this file affect many users.              **
// **           please discuss on the talk page before editing         **
// **                                                                  **
// **********************************************************************
/**
 * @source mediawiki.org/wiki/Snippets/Open_external_links_in_new_window
 * @version 5
 */
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) {
			this.target = '_blank';
			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
			}
		}
	});
});