2012-12-20 45 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