JSFiddle - React, Tailwind, and code Playground
by Matt Hopkins
JavaScript
/* -------------------------- */
/* The Funnel Toolbox */
/* UTM Passthrough */
/* */
/* For more funnel tools */
/* visit tftb.co */
/* -------------------------- */
var getLocation = function(href) {
var loc = document.createElement("a");
loc.href = href;
return loc;
};
$(function() {
var query = window.location.search.substring(1);
var vars = query.split("&");
var utmParameterString = "";
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0].indexOf("utm_") == 0) {
if (utmParameterString == "") {
utmParameterString += pair[0] + "=" + pair[1];
} else {
utmParameterString += "&" + pair[0] + "=" + pair[1];
}
}
}
if (utmParameterString != "") {
$.each($("a"), function(index, value) {
var url = getLocation($(value).attr("href"));
if (url.search) {
url.search += "&" + utmParameterString;
} else {
url.search = utmParameterString;
}
$(value).attr("href", url.href);
});
$.each($("img[data-imagelink]"), function(index, value) {
var url = getLocation($(value).attr("data-imagelink"));
if (url.search) {
url.search += "&" + utmParameterString;
} else {
url.search = utmParameterString;
}
$(value).attr("data-imagelink", url.href);
});
}
});