1/** 2 * File datalayer-forms-handler.js 3 * 4 * Additional GA Tags Event posting logic required 5 * 1. email-a-specialist confirmation 6 * 2. email-a-specialist visible on page 7 * 3. contact-us confirmation 8 * 4. contact-us visible on page 9 * 5. newsletter subscribe button clicked in global footer 10 * 6. newsletter subscribe button clicked in page on homepage 11 * 7. newsletter subscribe button clicked in sub-footer on pages 12 * 8. sidebar widget email signup form clicked 13 * 9. search: if search bar is triggered 14 * 15 * 16 * @dependecies javascript 17 * @version 1.6.1 18 * @package coa 19 * 20 */ 21 22document.addEventListener("DOMContentLoaded", ()=>{ 23 24 if (document.getElementsByClassName('wpforms-confirmation-container')[0]) { 25 //email-a-specialist confirmation 26 if (document.getElementById('wpforms-confirmation-89057')) { 27 console.warn('confirmation for email-a-specialist'); 28 dataLayer.push({ 29 event: 'formSubmitSuccess', 30 formName: "email a specialist", 31 formType: "in page form", 32 location: 'in page' 33 }) 34 } 35 //contact-us confirmation 36 if (document.getElementById('wpforms-confirmation-102832')) { 37 console.warn('confirmation for contact-us'); 38 dataLayer.push({ 39 event: 'formSubmitSuccess', 40 formName: "general contact", 41 formType: "in page form", 42 location: 'in page' 43 }) 44 } 45 } 46 47 //email-a-specialist form on a page 48 if (document.getElementById('wpforms-89057')) { 49 console.warn('Email A Specialist form on page'); 50 51 //email-a-specialist when form is in view 52 const emailSpecialist = new IntersectionObserver(function(entries) { 53 if (entries[0].isIntersecting === true) { 54 console.warn('Email A Specialist form viewed on page'); 55 dataLayer.push({ 56 event: 'formViewed', 57 formName: "email a specialist", 58 formType: "in page form", 59 location: 'in page' 60 }) 61 } 62 }, { threshold: [0] }); 63 emailSpecialist.observe(document.getElementById('wpforms-form-89057')); 64 } 65 66 //contact-us form on a page 67 if (document.getElementById('wpforms-102832')) { 68 console.warn('Contact Us form on page'); 69 70 //contact-us when form is in view 71 const contactUs = new IntersectionObserver(function(entries) { 72 if (entries[0].isIntersecting === true) { 73 console.warn('Contact Us form viewed on page'); 74 dataLayer.push({ 75 event: 'formViewed', 76 formName: "general contact", 77 formType: "in page form", 78 location: 'in page' 79 }) 80 } 81 }, { threshold: [0] }); 82 contactUs.observe(document.getElementById('wpforms-form-102832')); 83 } 84 85 //button click on newsletter module button normally found on homepage only 86 if (document.getElementsByClassName('newsletter-module')[0] && 87 document.getElementsByClassName('newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE')) { 88 document.getElementsByClassName('newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{ 89 console.warn('newsletter module in page on homepage is clicked'); 90 dataLayer.push({ 91 event: 'formSubmitAttempt', 92 formName: "newsletter signup step 1", 93 formType: "newsletter", 94 location: 'homepage in page' 95 }) 96 }) 97 } 98 99 //button click on newsletter module button normally found on homepage only 100 if (document.getElementsByClassName('subfooter-newsletter-module')[0] && 101 document.getElementsByClassName('subfooter-newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE')) { 102 document.getElementsByClassName('subfooter-newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{ 103 console.warn('newsletter module on page is clicked'); 104 dataLayer.push({ 105 event: 'formSubmitAttempt', 106 formName: "newsletter signup step 1", 107 formType: "newsletter", 108 location: 'in page' 109 }) 110 }) 111 } 112 113 //button click on newsletter module button in global footer only 114 if (document.getElementsByClassName('footer-menu')[0] && 115 document.getElementsByClassName('footer-menu')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE')) { 116 document.getElementsByClassName('footer-menu')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{ 117 console.warn('newsletter module in footer is clicked'); 118 dataLayer.push({ 119 event: 'formSubmitAttempt', 120 formName: "newsletter signup step 1", 121 formType: "footer subscribe", 122 location: 'footer' 123 }) 124 }) 125 } 126 127 //sidebar widget email signup form clicked 128 if (document.getElementsByClassName('widgets')[0]) { 129 if (document.getElementsByClassName('widgets')[0].getElementsByClassName('email-signup')[0]) { 130 if (document.getElementsByClassName('widgets')[0].getElementsByClassName('email-signup')[0].querySelectorAll('form')[0]) { 131 document.getElementsByClassName('widgets')[0].getElementsByClassName('email-signup')[0].querySelectorAll('form')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{ 132 console.warn('sidebar email signup form clicked'); 133 dataLayer.push({ 134 event: 'formSubmitAttempt', 135 formName: 'email-signup', 136 formType: 'sidebar generic form', 137 location: 'sidebar module' 138 }); 139 }) 140 } 141 } 142 } 143 144 //search page specific 145 if (document.getElementsByClassName('template-search')[0]) { 146 const searchDiv = document.getElementsByClassName('js-search-form')[0]; 147 148 //if search bar is triggered 149 searchDiv.querySelector('#searchsubmit').addEventListener('click',()=>{ 150 dataLayer.push({ 151 event: 'searchInitiated', 152 searchTerm: searchDiv.getElementsByClassName('searchInput')[0].value, 153 // searchFilters: [<search filter>] // e.g. Array of values
154 // // e.g. ['audience - Policymaker', 'topic - Parenting Skills] 155 }); 156 }); 157 } 158});
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.