MediaWiki:Gadget-userhighlight.js
Jump to navigation
Jump to search
Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences. — More skins
//This script ([[w:User:ais523/highlightmyname.js]]) highlights all instances of the
//logged-in user's username on pages by giving them a grey background. It only
//checks bodyContent, not titles or sidebars.
//<nowiki><pre>
function highlightmyname(n,p) //node, parent node
{
while(n!==null)
{
if(n.nodeType==3) //text node
{
if(n.data.toLowerCase().indexOf(mw.config.get('wgUserName').toLowerCase())!=-1)
{
var ix=n.data.toLowerCase().indexOf(mw.config.get('wgUserName').toLowerCase());
var t1=ix?document.createTextNode(n.data.substr(0,ix)):null;
var t2=document.createTextNode(n.data.substr(ix,mw.config.get('wgUserName').length));
var t3=ix+mw.config.get('wgUserName').length==n.data.length?null:
document.createTextNode(n.data.substr(ix+mw.config.get('wgUserName').length));
var s1=document.createElement("SPAN");
s1.className = 'gadget-userhighlight';
s1.appendChild(t2);
var s2=document.createElement("SPAN");
if(t1!==null) s2.appendChild(t1);
s2.appendChild(s1);
if(t3!==null) s2.appendChild(t3);
p.replaceChild(s2,n);
if(t3!==null) highlightmyname(t3,s2); //find remaining occurences in the new nodes
n=s2.nextSibling;
}
else
n=n.nextSibling;
}
else
{
if(n.firstChild!==null) highlightmyname(n.firstChild,n);
n=n.nextSibling;
}
}
}
$(function() {
if(location.href.indexOf("?ais523")==-1&&location.href.indexOf("&ais523")==-1&&
location.href.indexOf("?action=edit")==-1&&location.href.indexOf("?action=submit")==-1&&
location.href.indexOf("&action=edit")==-1&&location.href.indexOf("&action=submit")==-1&&
location.href.indexOf("&action=raw")==-1&&mw.config.get('wgPageName')!="Special:Preferences")
highlightmyname(document.getElementById('bodyContent').firstChild,
document.getElementById('bodyContent'));
});