「MediaWiki:Gadget-exlinks.js」の版間の差分
Ochaochaocha3 (トーク | 投稿記録) 細 (1版) |
Ochaochaocha3 (トーク | 投稿記録) (「外部リンクを新しいウィンドウ・タブで開く」をバージョン5に更新する) |
||
(同じ利用者による、間の1版が非表示) | |||
5行目: | 5行目: | ||
// ** ** | // ** ** | ||
// ********************************************************************** | // ********************************************************************** | ||
− | + | /** | |
− | + | * @source mediawiki.org/wiki/Snippets/Open_external_links_in_new_window | |
− | + | * @version 5 | |
− | + | */ | |
− | + | mw.hook('wikipage.content').add(function($content) { | |
− | if ( | + | // 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 | ||
+ | } | ||
} | } | ||
}); | }); | ||
}); | }); |
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
}
}
});
});