UNPKG

oa-frontend-conversiontracking

Version:

Stores click-id passed in URL to landingpage; submits click-id to network on conversion

178 lines (149 loc) 5.49 kB
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ /*! * domready (c) Dustin Diaz 2014 - License MIT */ !function (name, definition) { if (typeof module != 'undefined') module.exports = definition() else if (typeof define == 'function' && typeof define.amd == 'object') define(definition) else this[name] = definition() }('domready', function () { var fns = [], listener , doc = document , hack = doc.documentElement.doScroll , domContentLoaded = 'DOMContentLoaded' , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState) if (!loaded) doc.addEventListener(domContentLoaded, listener = function () { doc.removeEventListener(domContentLoaded, listener) loaded = 1 while (listener = fns.shift()) listener() }) return function (fn) { loaded ? setTimeout(fn, 0) : fns.push(fn) } }); },{}],2:[function(require,module,exports){ (function () { var domready = require("domready"); var cs = document.currentScript || (function () { var scripts = document.querySelectorAll('[data-params]'); if (scripts[0]) { return scripts[0]; } })(); domready(function () { var params = ['oa_clickid']; var link_selector = 'a[href], area[href]'; var form_selector = 'form'; var iframe_selector = 'iframe'; if (cs) { var paramsdata = cs.getAttribute('data-params'); var params = paramsdata.split(','); var linkselector_data = cs.getAttribute('data-link-selector'); var formselector_data = cs.getAttribute('data-form-selector'); var iframeselector_data = cs.getAttribute('data-iframe-selector'); if (linkselector_data) { link_selector = linkselector_data; } if (formselector_data) { form_selector = formselector_data; } if (iframeselector_data) { iframe_selector = iframeselector_data; } } var found_params = []; var query_string_parts = []; for (var i = 0; i < params.length; i++) { var x = params[i].replace(/^\s+|\s+$/gm, ''); if (x.length) { var value = decodeURIComponent((new RegExp('[?|&]' + x + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\+/g, '%20')) || null; if (value) { found_params.push({ name: x, value: value }); query_string_parts.push(encodeURIComponent(x) + "=" + encodeURIComponent(value)) } } } if (found_params.length) { // build query string var query_string = query_string_parts.join("&"); // add to a-links var links = document.querySelectorAll(link_selector); for (var i = 0; i < links.length; i++) { var link = links[i].getAttribute('href'); if (link.length && link.charAt(0) != '#') { var anchor_pos = link.indexOf('#'); var anchorcontent = ''; if (anchor_pos > -1) { anchorcontent = link.substring(anchor_pos + 1); link = link.substring(0, anchor_pos); } link += (link.indexOf('?') > -1 ? '&' : '?') + query_string; if (anchorcontent.length) { link += '#' + anchorcontent; } links[i].setAttribute('href', link); } } // add to forms var forms = document.querySelectorAll(form_selector); for (var i = 0; i < forms.length; i++) { var action = forms[i].getAttribute('action'); var method = forms[i].getAttribute('method'); // if post, add to action, otherwise add hidden inputs. if (method && method.toLowerCase() == 'post') { action = action === null ? '' : action;; if (action.charAt(0) != '#') { var anchor_pos = action.indexOf('#'); var anchorcontent = ''; if (anchor_pos > -1) { anchorcontent = action.substring(anchor_pos + 1); action = action.substring(0, anchor_pos); } action += (link.indexOf('?') > -1 ? '&' : '?') + query_string; if (anchorcontent.length) { action += '#' + anchorcontent; } forms[i].setAttribute('action', action); } } else { for (var j = 0; j < found_params.length; j++) { var p = found_params[j]; var input = document.createElement('input'); input.setAttribute('name', p.name); input.setAttribute('value', p.value); input.setAttribute('type', 'hidden'); forms[i].appendChild(input); } } } } else { var query_string = ''; } // add to iframes var iframes = document.querySelectorAll(iframe_selector); for (var i = 0; i < iframes.length; i++) { var link = iframes[i].getAttribute('src'); if (!link || link == undefined || link.length == 0) { link = iframes[i].getAttribute('data-original-src'); } if (link.length && link.charAt(0) != '#') { var anchor_pos = link.indexOf('#'); var anchorcontent = ''; if (anchor_pos > -1) { anchorcontent = link.substring(anchor_pos + 1); link = link.substring(0, anchor_pos); } link += (link.indexOf('?') > -1 ? '&' : '?') + query_string; if (anchorcontent.length) { link += '#' + anchorcontent; } iframes[i].setAttribute('src', link); } } }); }).call(this); },{"domready":1}]},{},[2]);