User:Shizhao/shorturl.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

/*
显示在左侧导航条“工具”处,点击后会给出该页面的链短接
参考 https://meta.wikimedia.org/wiki/Wikimedia_URL_Shortener
Author: [[User:Shizhao]], 2019
本页短链接为:https://w.wiki/3eC
*/
var portletLink = mw.util.addPortletLink( 'p-tb', '#',  '短链接', 't-shorturl', '显示该页面的短链接');
 
$( portletLink).click( function (e) {
	e.preventDefault();
	mw.loader.using( [ 'oojs-ui-windows', 'mediawiki.widgets', 'mediawiki.ForeignApi' ] ).then( function () {
		var uri = new mw.Uri();
		var api = new mw.ForeignApi('//meta.wikimedia.org/w/api.php');
		api.post( {
			action: 'shortenurl',
			url: uri.toString()
		} ).then( function ( data ) {
			OO.ui.alert(
				new mw.widgets.CopyTextLayout( { copyText: data.shortenurl.shorturl } ).$element
			);
		} ).fail(function() {
		if ('error' in arguments[1]) {
			mw.notify(arguments[1]['error']['info'], { title: arguments[1]['error']['code'], type: 'error' })
		} else {
			mw.notify(arguments[0], { title: 'error', type: 'error' })
		}
	});
	} );
})