Web Analytics Made Easy -
StatCounter Beginner Question on Modifying Text w/ Greasemonkey - CodingForum


No announcement yet.

Beginner Question on Modifying Text w/ Greasemonkey

  • Filter
  • Time
  • Show
Clear All
new posts

  • Beginner Question on Modifying Text w/ Greasemonkey

    JavaScript has always haunted me as a language. I know HTML and CSS but JS always ruins me!

    I'm trying to write a very simple, very basic script just to see if I can get the hang of it. I'm trying to tweak the appearance of my Gmail address inside my inbox.

    Instead having my address being displayed as [email protected], I would rather have it as [email protected]. Here's is my code:

    (function () {
    	var newEmail = "[email protected]";
    	var nameTag = document.getElementsByTagName('span').getElementById('gbi4t')[0];
    	nameTag.setAttribute(innerHTML, newEmail);
    }) ();
    I just can't seem to get it to work. What am I doing wrong?

  • #2
    First, each ID name should only ever be defined/used once on a page.

    getElementsByTagName() returns an array of pointers, accessible numerically through an array reference [#] tacked on at the end like this: getElementsByTagName()[0].

    getElementById() returns a single pointer (which is one reason why an ID name should only be used once on a page - your script won't know which one you mean).

    So far, it appears your script is backwards and should probably be:
    var nameTag = document.getElementById('gbi4t').getElementsByTagName('span')[0];

    Since I can't imagine gMail using improper coding, if the span containing the email address you want to change has the id gbi4t this is probably all you need.
    var nameTag = document.getElementById('gbi4t');

    If it is the first span inside of a container that has the id gbi4t its as I pointed out above:
    var nameTag = document.getElementById('gbi4t').getElementsByTagName('span')[0];

    I'm just guessing here since I don't know exactly what you are trying to reference.