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);
    });
  }
});