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.
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]")
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