簡體   English   中英

提交按鈕上的Ajax請求? (用於分析 - 事件跟蹤)

[英]Ajax request on a submit button? (for analytics - Event Tracking)

我有一個輸入按鈕,其中包含谷歌分析代碼(點擊檢測):

<input type="button" onclick="ga('send',...);"/>

此按鈕提交,我確實在網絡面板中看到了谷歌服務器的請求。

在此輸入圖像描述

問題是當按鈕是提交按鈕時:

<input type="submit" onclick="ga('send',...);"/>

在此輸入圖像描述

我知道,它不起作用。

可以通過: jQ解決方案 解決它:( 例如)

e.preventDefault();
ga('send',...);
$(this).click();

但我不是在解決問題之后。 我追問它發生原因

顯而易見的原因是因為頁面重定向/發布。

但我可以這樣做:

<input type="submit" onclick="for (var i=0;i<5;i++) console.log(i);"/>

代碼工作原理 :(就像我寫的那樣return false

它顯示數字並提交

在此輸入圖像描述

我知道ajax是一個異步操作(應該是),但內部會發生什么阻止請求執行? 與其他js代碼相對

注意:我不關心回應。 該請求具有包含數據的查詢字符串。 google servers使用查詢字符串等待此請求。 (谷歌儀表板不顯示任何收到的點擊)

(這個問題出現在我被要求對某些按鈕(有些確實提交)進行點擊檢測之后,並且在檢查之后, 谷歌沒有說明這些按鈕的任何內容

不是解釋(我想要),而是提交/重定向時解決谷歌分析問題的方法:

在底部包含此代碼:

$("body").on('click', '[data-ga]', function (e)
{
    var _ = $(this);
    if (_.data('prevented') == 1)
    {
        _.removeData("prevented");
        return true;
    }

    e.preventDefault();
    _.data('prevented', 1);
    window.__gacb = function () { _[0].click(); };
    new Function(_.data('ga'))();
    return false;
});

對於提交/重定向的任何元素:

 <input type='submit'  data-ga="ga('send', 'Forms', { 'hitCallback':function (){window.__gacb()}});" />

谷歌有這個屬性hitCallback這是一個回調,所以我可以在識別出我第一次被阻止后觸發點擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM