1(function ($, Drupal) { 2 Drupal.behaviors.captureUTMParams = { 3 attach: function (context, settings) { 4 // Parse URL parameters 5 function getUrlParameter(name) { 6 name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); 7 var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); 8 var results = regex.exec(window.location.search); 9 return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); 10 } 11 12 // Capture UTM parameters 13 var utmCampaign = getUrlParameter('utm_campaign'); 14 var utmSource = getUrlParameter('utm_source'); 15 var utmMedium = getUrlParameter('utm_medium'); 16 var utmContent = getUrlParameter('utm_content'); 17 var utmSalesforceCampaign = getUrlParameter('Salesforce_Campaign_Name__c'); 18 19 20 // Populate hidden fields in the webform 21 $('input[name="utm_campaign__c"]').val(utmCampaign); 22 $('input[name="utm_source__c"]').val(utmSource); 23 $('input[name="utm_medium__c"]').val(utmMedium); 24 $('input[name="utm_content__c"]').val(utmContent); 25 $('input[name="utm_salesforce_campaign_name__c"]').val(utmSalesforceCampaign); 26 } 27 }; 28})(jQuery, Drupal);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.