Advertisement
jamescolin

use email personalization substitutes inside your SystemeIO pages

Dec 31st, 2023
1,419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2. // use email personalization substitutes inside your SystemeIO pages
  3. // ie. {email} / {first_name} ...
  4. window.addEventListener("load", function() {
  5.   const regexPattern = /\{([^}]*)\}/g;
  6.   var jamesdivs = jamescontains('div', regexPattern);
  7.   jamesdivs.forEach(function(element) {
  8.     if (element.textContent.search('jamescontains') == -1) {
  9.       jamesreplace(element, regexPattern, jamesreplaceSessionValues);
  10.     }
  11.   });
  12. });
  13.  
  14. const jamesreplaceSessionValues = (match, variableName) => {
  15.   const sessionValue = sessionStorage.getItem(variableName);
  16.   return sessionValue !== null ? sessionValue : '';
  17. };
  18.  
  19. function jamescontains(selector, text) {
  20.   var elements = document.querySelectorAll(selector);
  21.   return Array.prototype.filter.call(elements, function(element) {
  22.     return RegExp(text).test(element.textContent);
  23.   });
  24. }
  25.  
  26. function jamesreplace(element, pattern, replacement) {
  27.   for (let node of element.childNodes) {
  28.     switch (node.nodeType) {
  29.       case Node.ELEMENT_NODE:
  30.         jamesreplace(node, pattern, replacement);
  31.         break;
  32.       case Node.TEXT_NODE:
  33.         node.textContent = node.textContent.replace(pattern, replacement);
  34.         break;
  35.       case Node.DOCUMENT_NODE:
  36.         jamesreplace(node, pattern, replacement);
  37.     }
  38.   }
  39. }
  40. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement