我正在一个网站上工作,当用户注册时,我们会在页面中插入一段html。
<span data-log-in-status="complete-sign-up" data-log-in-type="email" id="log_in_status" style="display:none;"></span>
然后我们有一个页面加载事件找到此元素,并将此信息推送到Google Analytics。在开发中我可以在页面源代码中看到这个元素,但是在生产中,这个元素没有 - 在哪里可以找到......
然而,这就是说 - 分析完成注册事件在两种环境中都被触发了!
我真的很想了解发生了什么 - 它就像元素出现在页面中一样(分析事件触发了正确的数据)然后消失了......我唯一能想到的是,如果一段javascript以某种方式删除了这个元素,或者浏览器是否删除了它。
以下是网络上发生的事情的屏幕截图:
这是获取此数据并将其推送到分析的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
}
}
});
思想?
答案 0 :(得分:0)
您的代码将始终触发,无论天气是否存在,因为即使是空的jQuery对象也会评估为true。
尝试:
if (loginStatus.length > 0)
而不是:
if (loginStatus)