User:Huntster/highlightmyname.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at User:Huntster/highlightmyname. |
- Report page listing warnings and errors.
//Shamelessly stolen from http://en.wikipedia.org/wiki/User:Ais523/highlightmyname2.js and modified for my use.
//This script highlights all instances of the logged-in user's username on pages by
//giving them a gold background. It only checks bodyContent, not titles or sidebars,
//and doesn't change edit windows or Special:Preferences.
/* You can highlight a string other than your username by writing
* hmn2username="stringtohighlight";
* just after the line and/or lines that you used to install this script.
*/
var hmn2exception;
try
{
if(hmn2username===undefined||hmn2username===null) hmn2username="";
}
catch(hmn2exception)
{
hmn2username="";
}
function highlightmyname(n,p) //node, parent node
{
while(n!==null)
{
if(n.nodeType==3) //text node
{
if(n.data.toLowerCase().indexOf(hmn2username.toLowerCase())!=-1)
{
var ix=n.data.toLowerCase().indexOf(hmn2username.toLowerCase());
var t1=ix?document.createTextNode(n.data.substr(0,ix)):null;
var t2=document.createTextNode(n.data.substr(ix,hmn2username.length));
var t3=ix+hmn2username.length==n.data.length?null:
document.createTextNode(n.data.substr(ix+hmn2username.length));
var s1=document.createElement("span");
s1.style.backgroundColor="#FCCD33";
s1.className="ais523hmn";
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(hmn2username==="") hmn2username=mw.config.get('wgUserName');
// The two occurrences of 'ais523' in the following line are to prevent conflicts with
// other scripts I've written; don't change them to your own username (the script will
// change to your username automatically).
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'));
});