User:Huntster/monobook.js/highlightmyname.js

//Shamelessly stolen from 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')); });