我需要使用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>
点击div
后Confirm
会被更改,Javascript
警告框会显示内容。
点击按钮时,页面根本不刷新,全部通过Javascript
和Ajax
完成。
我们遇到的问题是Google代码管理器没有运行从容器中获取数据的函数。这可能是因为尚未通过服务器的响应更新DOM。换句话说,在点击按钮并运行谷歌标签管理器时,该容器仍为空。
我们刚使用Click
触发器检查按钮id
,class
为active
。
在单击按钮后运行自定义变量时,有什么方法可以延迟吗?或者也许我们可以使用更好的触发器?可能是一个触发器,它发现警报已经弹出?
答案 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中。