User:維基霸王/vector.js

var targetLang = 'zh'; mw.loader.load('//zh.wikipedia.org/w/index.php?title=User:Zuohaocheng/cate-langlinks.js&action=raw&ctype=text/javascript');

/**

（王小朋友修改过的） Name: Langlinks Author: ZUO Haocheng User:zuohaocheng Email: Please feel free to email me via http://en.wikipedia.org/wiki/Special:EmailUser/Zuohaocheng 电邮: 请通过 http://zh.wikipedia.org/wiki/Special:EmailUser/Zuohaocheng 给我发送电邮 Date: 2011年8月12日 (五) 00:45 (UTC) 用途: 检测具有中文版的条目，若有，则改变链接为中文. Usage: Check whether localized article exists, and change its appearance. ".locArticleExist" if (typeof(targetLang) === 'undefined') { var targetLang = 'en'; } $(function {   var process = function(baseURI, continueSelector, continueKey) {	var processResult = function(resultjq) {	    //处理重定向	    resultjq.find('redirects r').each(function { var article = $(this).attr('to'); var orgArticle = $(this).attr('from'); $('a[title="' + orgArticle + '"]').attr('title', article); });

//处理页面 var langSel = "langlinks ll[lang='" + targetLang + "']"; resultjq.find('pages page').each(function {		var article = $(this).attr('title');		var localLink = $(this).find(langSel);		if (localLink.length !== 0) {		   var locArticle = localLink.text;		    var titleSel = "a[title='" + article.replace('\, '\\\) + "']";		    $(titleSel).addClass("locArticleExist").text(""+locArticle+"");		}	    }); };	var continueGetLanglink = function(resultjq, URI) { var continueLanglink = resultjq.find('query-continue langlinks'); if (continueLanglink.length !== 0) { //继续获取跨语言链接 var continueStr = continueLanglink.attr('llcontinue'); var postData = {llcontinue: continueStr}; $.post(URI, postData, function(result) {		   continueGetLanglink($(result), URI);		}); }	   processResult(resultjq); }	var continueGet = function(result) { var resultjq = $(result); var continueLink = resultjq.find(continueSelector); if (continueLink.length !== 0) { //继续获取内部链接 var continueLinkURI = baseURI + '&' + continueKey + '=' + continueLink.attr(continueKey); $.get(continueLinkURI, continueGet); }	   continueGetLanglink(resultjq, this.url); };	$.get(baseURI, continueGet); };

var pageName = encodeURIComponent(mediaWiki.config.get('wgPageName'));

var apiURIprefix = '/w/api.php'; var linksURIprefix = apiURIprefix + '?action=query&format=xml&generator=links&gpllimit=500&prop=langlinks&lllimit=500&redirects=true' var linksURI = linksURIprefix + '&titles=' + pageName; process(linksURI, 'query-continue links', 'gplcontinue');

if (mediaWiki.config.get('wgNamespaceNumber') === 14) { var cateMemberURI = apiURIprefix + '?format=xml&redirects=true&action=query&generator=categorymembers&gcmnamespace=0|14&gcmlimit=500&prop=langlinks&lllimit=500&gcmtitle=' + pageName; process(cateMemberURI, 'query-continue categorymembers', 'gcmcontinue'); } });