Index: googleanalytics.js =================================================================== --- googleanalytics.js (revision 209) +++ googleanalytics.js (working copy) @@ -1,16 +1,18 @@ -// $Id: googleanalytics.js,v 1.3.2.6 2008/11/25 22:43:30 hass Exp $ +// $Id: googleanalytics.js,v 1.3.2.8 2009/03/04 07:25:47 hass Exp $ -Drupal.behaviors.gaTrackerAttach = function(context) { - +$(document).ready(function() { // Attach an onclick event to body tag. Clicks on links will "bubble up". // This approach is more efficient than attaching to each link, since // all the links can share one handler. - $('body', context).click( function(e) { - if (e.target.tagName.toLowerCase() != 'a') { - return; + $('body').click(function(e) { + var $link = $(e.target).parents('a:first').andSelf().filter('a'); + if ($link.size() != 0) { + googleAnalyticsClick.apply($link.get(0)); } + }); - var link = e.target; + // Click handler for links. + function googleAnalyticsClick() { var ga = Drupal.settings.googleanalytics; // Expression to check for absolute internal links. var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i"); @@ -32,15 +34,5 @@ pageTracker._trackPageview(link.href.replace(isInternal, '')); } } - else { - if (ga.trackMailto && $(link).is("a[href^=mailto:]")) { - // Mailto link clicked. - pageTracker._trackEvent("Mails", "Click", link.href.substring(7)); - } - else if (ga.trackOutgoing) { - // External link clicked. - pageTracker._trackEvent("Outgoing links", "Click", link.href); - } - } - }); -} + } +});