User:SickManWP/userhighlighter.js

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

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

;(function($){
	$.getJSON( mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Jasonzhuocn/adm.js', function(data){
		//data from https://zh.wikipedia.org/w/index.php?title=Special%3A用户列表&username=&group=sysop   this information includes the present administrator
		$(function(){
			function highlightadmins_inner(n,h) //node, relevant hyperlink fragment
			{
			  if (n.nodeType!=1||n.tagName.toLowerCase()!="a") return 0; // not an anchor
			  if (n.href.indexOf(mw.config.get('wgScript')+"?title="+h) == -1 &&
			      n.href.indexOf(mw.config.get('wgArticlePath').split("$1")[0]+h) == -1) return 0; // to the wrong target
			  var u=decodeURIComponent(n.href).split(h)[1];
			  if(data[u.split("_").join(" ")]==1)
			  {
			    n.style.backgroundColor="#FFF478";
			    if(n.className===null||n.className==="") n.className="userhighlighter_sysop";
			    else n.className+="userhighlighter_sysop";
			  }
			  return 1;
			}
			 
			function highlightadmins(n) //node
			{
			  while(n!==null)
			  {
			    if(highlightadmins_inner(n,"User:")) n=n.nextSibling;
			    else if(highlightadmins_inner(n,"User_talk:")) n=n.nextSibling;
			    else if(highlightadmins_inner(n,"Special:Contributions:")) n=n.nextSibling;
			    else
			    {
			      if(n.firstChild!==null) highlightadmins(n.firstChild);
			      n=n.nextSibling;
			    }
			  }
			}
			
			highlightadmins(document.getElementById('bodyContent'));			
		});	
	});
}(jQuery));