Click Tracking - Accessing Target URL Fails

To capture the URL from a clicked element within a complex HTML structure, such as a button containing an icon or text, use the following method.

This code efficiently retrieves the href value by iterating through the elements until it locates the root anchor (<a> tag).

Simply create a "Client Side" variable with "Client Side JavaScript Code," ensuring access to the href value regardless of the nested structure.

function(contextObject){
  var result;
  if(contextObject && contextObject.element){
    var targetElement = contextObject.element;
    if (targetElement.tagName.toLowerCase() === "a") {
      result = targetElement.href;
    } else {
      // Traverse up the DOM tree to find the parent anchor
      while (targetElement && 
             targetElement.tagName.toLowerCase() !== "a" && 
             targetElement.tagName.toLowerCase() !== "body") {
        targetElement = targetElement.parentElement;
      }
  
      // If an anchor is found, log the href
      if (targetElement && targetElement.tagName.toLowerCase() !== "body") {
        result = targetElement.href;
      }
    }
  }
  return result;
}

Last updated

Was this helpful?