User:Wcam/userhighlighter.js

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

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

// [[User:Amalthea/userhighlighter.js]]
// Based on [[User:Ais523/adminrights.js]], inner logic taken straight from there.
// Consider using [[User:Theopolisme/Scripts/adminhighlighter.js]] instead, a better version of this script
//
// This script highlights bluelinks to admins' userpages or talkpages in bodyContent (that is, everything but the tabs, personal
// links at the top of the screen and sidebar) by giving them a cyan background.
//
// If you want a colour other than cyan, add something like
// .amalthea_userhighlighter_sysop {background-color: red !important}
// to your common.css file.

;(function($){
$.getJSON( mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Wcam/sysop_list', function(data){
$(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
try {
var u=decodeURIComponent(n.href).split(h)[1];
} catch (e) {
//URIError: URI malformed
return;
}
if(data[u.split("_").join(" ")]==1)
{
n.style.backgroundColor="#00FFFF";
if(n.className==null||n.className=="") n.className="amalthea_userhighlighter_sysop";
else n.className+=" amalthea_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));