当按钮单击弹出警告框时,Google标签管理器未运行

时间:2016-02-14 23:45:46

标签: javascript jquery html ajax google-tag-manager

我需要使用Google代码管理器跟踪网站上的某些内容。我是个新手,所以任何帮助都会受到赞赏。

我有一个按钮如下:

<input type="button" name="purchase" id="btnPurchase" value="Buy now">

单击此按钮时,它将更改为:

<input type="button" name="purchase" id="btnPurchase" value="Confirm" class="active">

再次点击时会出现一个弹出窗口,其中包含您已购买商品的一些详细信息。

在网站中有以下包装器,在单击Confirm之前保持为空:

<div class="purchaseWrapper" id="purchaseWrapper"> <img class="closeButton" src="images/pur-close.png" width="24" height="24">
    <div class="purchaseContainer" id="purchaseContainer"></div>
</div>

点击divConfirm会被更改,Javascript警告框会显示内容。

点击按钮时,页面根本不刷新,全部通过JavascriptAjax完成。

我们遇到的问题是Google代码管理器没有运行从容器中获取数据的函数。这可能是因为尚未通过服务器的响应更新DOM。换句话说,在点击按钮并运行谷歌标签管理器时,该容器仍为空。

我们刚使用Click触发器检查按钮idclassactive

在单击按钮后运行自定义变量时,有什么方法可以延迟吗?或者也许我们可以使用更好的触发器?可能是一个触发器,它发现警报已经弹出?

1 个答案:

答案 0 :(得分:0)

  

我们只是使用Click触发器检查按钮ID并且该类处于活动状态。

     

在运行自定义变量后,有什么方法可以延迟   单击按钮?或者也许我们可以使用更好的触发器?也许是   是否会触发警报弹出的触发器?

当我需要在单击按钮后自定义JS变量时,我遇到了类似的问题。我发现两个解决方案都需要使用自定义HTML标记。

所以我使用自定义HTML标签在按钮点击时执行javascript功能。所以我做到了;

$("#button").onclick(function(){

      // Insert code here
      // Execute variable here

})

另一种选择是使用自定义事件作为触发器。一个问题是当我不得不使用不同的触发器时,因为GTM中的marcos快速执行。所以我所做的是使用自定义HTML标记。然后我在函数执行后将变量推入dataLayer。

我需要的是在按钮点击时收集值,但GTM标记在我可以使用自定义代码收集值之前触发。所以我做的是使用自定义事件。喜欢这个

function executeCode (){
   var collect = $("div").text();
   dataLayer.push('collectEvent':collect);
   dataLayer.push('event':'varaibleCollect');
} executeCode();

因此,当自定义事件触发器“variableCollect”被推入dataLayer时,我所做的就是将我的标记绑定到触发器。所以我的变量collect将在dataLayer中。