I’e been attempting to get Google Analytics to work correctly in both FireFox and IE6 for a site at $WORK. This is not normally a problem, apart from the fact that we’re serving up pages to firefox as
application/xhtml+xml in order to get MathML support.
Now, the sample code from Google is pretty gnarly.
This fails in XHTML as document.write() isn’t there.
I tried a number of ways to get this to work.
document.write()with some jQuery code to insert a script tag.
- This didn’t work in IE6 — as the second script block ended up getting called before newly inserted script tag had loaded.
- But I did find out that jQuery will replace script tags with Ajax calls for you. Which means you don’t end up with a script tag in the DOM tree, which is highly confusing when you’re looking for it in firebug.
document.write()with native DOM calls to insert a script tag.
- I did find the neat idea of adding an id to the script tag you’re currently in, so you know where to insert new DOM elements.
- But it still failed, and for the same reason as above.
I was just about to start implementing something evil involving
setInterval(), when I realised…
… this site will never use SSL!
So I replaced the code to generate a script tag with the script tag.
Tada! If only I’d thought of this a few hours earlier… The moral is to be more aware of the context in which you’re doing something. Keep an eye on the “big picture” to use a particularly horrible metaphor.