2016-02-14 91 views
0

我需要使用Google標籤管理器跟蹤網站上的一些內容。我是新的神仙,所以任何幫助將不勝感激。當按鈕點擊彈出警告框時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警報框將顯示內容。

點擊按鈕時,頁面根本不刷新,全部通過JavascriptAjax完成。

我們遇到的問題是,Google標記管理器沒有運行從容器中獲取數據的函數。這可能是因爲DOM尚未被服務器的響應更新。換句話說,當按鈕被點擊並且谷歌標籤管理器運行時,該容器仍然是空的。

我們只是使用了Click觸發檢查按鈕id,而且classactive

當點擊按鈕後運行自定義變量時,有什麼方法可以延遲嗎?或者,也許我們可以使用更好的觸發器?也許是一個觸發器,提醒了一個警報已經彈出?

回答

0

我們只是使用Click觸發器檢查按鈕ID,並且該類是活動的。

有沒有什麼辦法可以延緩當自定義變量運行後點擊按鈕 ?或者,也許我們可以使用更好的觸發器?也許一個 觸發器提示出現警報?

我遇到類似的問題,當我需要自定義JS變量來執行按鈕單擊後執行。我發現兩個解決方案都需要使用自定義HTML標記。

所以我使用自定義的HTML標籤來執行按鈕單擊的JavaScript函數。所以我做了;

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

     // Insert code here 
     // Execute variable here 

}) 

另一種選擇是使用自定義事件作爲觸發器。一個問題是當我不得不使用不同的觸發器,因爲GTM中的馬可斯執行得很快。所以我做的是使用自定義的HTML標籤。然後我在一個函數執行後將一個變量推入dataLayer。

我需要的是在點擊按鈕時收集一個值,但GTM標籤在我可以使用自定義代碼收集值之前觸發。所以我做的是使用自定義事件。像這樣

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

所以我所做的是配合我的標籤時,自定義事件觸發「variableCollect」推到數據層開火。所以我的變量收集將在dataLayer中。

+0

唯一的問題是我們不允許改變網站,所以我們必須使用已經存在的內容。 –

+0

您可以使用GTM的自定義HTML標記在頁面上添加一些JavaScript代碼嗎? – Quinnystar27

+0

當我回去工作並且看時,我會看看這個。 –

相關問題