【问题标题】:postMessage not pushing into the dataLayerpostMessage 未推入 dataLayer
【发布时间】:2021-12-01 22:49:43
【问题描述】:

我在子 google 标记管理器帐户中有一个脚本,该脚本在提交通过 javascript 生成的 iframe 表单时触发,这应该通过父 google 标记管理器帐户通过 dataLayer 获取。我正在关注本教程:https://measureschool.com/iframe-tracking/

但是它不会进入父级的 dataLayer - 因此标签不会触发。有人可以帮忙吗?

确认

子标签管理器帐户在以下位置触发:https://new.bokuntest.com/ - iframe 表单 URL

父标签管理器帐户在以下位置触发:https://bokun.io/

嵌入 iframe 表单的页面 URL:https://bokun.io/copy-of-free-trial

在孩子中触发 postMessage 标记:

<script>
  try {
      var postObject = JSON.stringify({
        event: 'iframeFormSubmit', 
        form: 'Registration'
      });
      parent.postMessage(postObject, 'https://new.bokuntest.com');
} catch(e) {
  window.console && window.console.log(e);
}
  </script>

父级上的侦听器标记(触发器 = 在所有页面上触发):

<script type="text/javascript">
(function(window) {

    addEvent(window, 'message', function(message) {
      try{
      var data = JSON.parse(message.data);
      var dataLayer = window.dataLayer || (window.dataLayer = []);
      if (data.event) {
        dataLayer.push({
          'event': data.event,
          'postMessageData': data
        });
      }
      }catch(e){}
    });

    // Cross-browser event listener
    function addEvent(el, evt, fn) {
      if (el.addEventListener) {
        el.addEventListener(evt, fn);
      } else if (el.attachEvent) {
        el.attachEvent('on' + evt, function(evt) {
          fn.call(el, evt);
        });
      } else if (typeof el['on' + evt] === 'undefined' || el['on' + evt] === null) {
        el['on' + evt] = function(evt) {
          fn.call(el, evt);
        };
      }
    }

  })(window);
</script>

在父级上触发(这似乎没有发生):

父表单提交标签:

谁能弄清楚我错过了什么?

【问题讨论】:

    标签: javascript html forms iframe google-tag-manager


    【解决方案1】:
    window.parent.postMessage(postObject, 'https://new.bokuntest.com');
          try {
              var postObject = JSON.stringify({
                event: 'iframeFormSubmit', 
                form: 'Registration'
              });
              window.parent.postMessage(postObject, 'https://new.bokuntest.com');
        } catch(e) {
          window.console && window.console.log(e);
        }
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多