0

我正在一个网站上工作,当用户注册时,我们在页面中插入一段 html,例如

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

然后我们有一个页面加载事件,它找到这个元素,并将这个信息推送到谷歌分析。在开发中我可以在页面源中看到这个元素,但是在生产中,这个元素是无处可寻的......

话虽如此 - 在两种环境中都会触发分析完成注册事件!

但是,我真的很想了解发生了什么-就像元素出现在页面中(分析事件会触发正确的数据)但随后消失了...我唯一能想到的是,如果一段 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
        }
    } 
});

想法?

4

1 回答 1

0

无论天气如何,您的代码都将始终触发,因为即使是空的 jQuery 对象也会评估为 true。

尝试:

if (loginStatus.length > 0)

代替:

if (loginStatus)
于 2012-12-20T14:35:40.300 回答