2012-12-20 96 views
0

我正在一個網站上工作,當用戶註冊時,我們會在頁面中插入一段html。Html元素在生產中消失

<span data-log-in-status="complete-sign-up" data-log-in-type="email" id="log_in_status" style="display:none;"></span> 

然後,我們有一個頁面加載事件,它會查找此元素,並將此信息推送到Google分析。在開發過程中,我可以在頁面源中看到此元素,但在生產中,此元素沒有 - 在哪裏可以找到...

然而,這是說 - 分析完成註冊事件在兩種環境!

但我真的很想知道發生了什麼 - 它就像元素出現在頁面中(分析事件觸發了正確的數據),但隨後消失...我唯一能想到的是如果一段JavaScript以某種方式刪除這個元素,或者如果瀏覽器刪除它。

這裏發生的事情在網絡上的截圖:

enter image description here

這裏的JavaScript代碼獲取此數據並將其推到分析:

$(document).ready(function() { 
    var status, loginStatus; 
    loginStatus = $('#log_in_status'); 

    if(loginStatus) { 
     login_type = $(loginStatus[0]).attr('data-log-in-type'); 
     status = $(loginStatus[0]).attr('data-log-in-status'); 

     pushGAEvent(status, login_type, null, null); 
     if(status === 'complete-sign-up') { 
       goog_report_conversion(); //adwords 
     } 
    } 
}); 

的思考?

+2

是您使用的代碼,以查找元素併發布到谷歌?任何人都有希望回答這個問題之前,你必須至少發佈一些你的javascript。 – rjmunro

+0

代碼正在工作 - 奇怪的是html元素消失。無論如何,我會發布它,但我不明白它會有什麼幫助。 –

+0

有點偏離主題,但你調用.attr(...),你不需要索引器調用或$函數調用:'loginStatus.attr('data-log-in-type');' –

回答

0

即使空的jQuery對象評估爲true,您的代碼也會始終激活,無論天氣如何,都不會存在元素。

嘗試:

if (loginStatus.length > 0) 

代替:

if (loginStatus) 
+0

感謝您指出rjmunro,這是正確的 - 我會解決這個問題。儘管如此,仍然沒有回答原來的問題。 –

+0

這可能解釋了爲什麼分析完成註冊事件在生產中被觸發,即使元素缺失。所以這個問題很可能是服務器端 - 元素不會被添加到您的生產服務器上。 – rjmunro