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;
}
PreviousClick Tracking not executed - CSS and HTML issuesNextClick Tracking - Debug with All Clicks as a Last Resort Measure
Last updated
Was this helpful?