Is there a simple, universal outbound click tracking method for JQuery / Javascript?

664 views Asked by At

I'm looking for a way of tracking all outbound clicks from a web page using Javascript/ JQuery without modifying any of the existing page code. The solution must work with frames, iframes, content from different domains, AJAX etc.

Perhaps, Javascript is the wrong technology for a universal solution. If so, please let me know what would be better.

2

There are 2 answers

3
Finbarr On

There is an easy solution:

get all a elements
    check href to see if it begins with http or https
        if so and the domain is external to your site, add a click handler
3
ChrisR On

It's easy enough to capture all clicks on external links.

$(document).ready(function() {
    $("a[@href^=http]").each(function(){
        if(this.href.indexOf(location.hostname) == -1) {
            // Handle click here
        }
    });
});

Getting this to work for iframes is a little trickier. The iframe should reside from the same domain due to the Same origin policy. If so you should be able to change the css selector above to something like $("#iframe_id").contents().find("[@href^=http]")