From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

//This script ([[User:ais523/highlightmyname2.js]]) highlights all instances of the

//logged-in user's username on pages by giving them a bright red 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. */



//<nowiki><pre>

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="#FF0000";

        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;

    }

  }

}

  

jQuery(function() {

  // Skip pages that don't have bodyContent

  if ( document.getElementById('bodyContent') === null ) {

    return;

  }

  

  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'));

});

//</pre></nowiki>

//[[Category:Wikipedia scripts]]