Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mixpanel Javascript-返回对象的distinct_id变量_Javascript_Jquery_Forms_Mixpanel - Fatal编程技术网

Mixpanel Javascript-返回对象的distinct_id变量

Mixpanel Javascript-返回对象的distinct_id变量,javascript,jquery,forms,mixpanel,Javascript,Jquery,Forms,Mixpanel,我正在尝试在我的注册表上设置Mixpanel人员跟踪,但我无法将Mixpanel的distinct\u id传递到我的表单 这是从Mixpanel()获取用户的独特\u id的脚本: 当我尝试将其传递到注册表中的隐藏输入时 $(document).ready(function(){ $("#distinct_id").val(distinct_id); }); 对于,Chrome Inspector中源代码的结果行如下所示: 然而,当我执行console.log(distinct_id

我正在尝试在我的注册表上设置Mixpanel人员跟踪,但我无法将Mixpanel的
distinct\u id
传递到我的表单

这是从Mixpanel()获取用户的独特\u id的脚本:

当我尝试将其传递到注册表中的隐藏输入时

$(document).ready(function(){
    $("#distinct_id").val(distinct_id);
});
对于
,Chrome Inspector中源代码的结果行如下所示:

然而,当我执行
console.log(distinct_id)时在Chrome控制台中,它输出ID

我承认我的javascript是相当垃圾的,所以我可能遗漏了一些明显的东西。。。我试着用
JSON.stringify
函数解析它,如下所示:

$(document).ready(function(){
    distinct_id = JSON.stringify(distinct_id, null, 4);
    $("#distinct_id").val(distinct_id);
});
但是它只是产生了
{}
作为一个值,形式是


有什么建议吗?

根据您共享的内容,您现在似乎正在将变量“distinct_id”视为全局变量,而实际上它仅在init函数的范围内。正如trincot所提到的,移动
$(document).ready()
块中的内容可能会解决这个问题,尽管将distinct\u id声明为全局变量也应该有效

因此根据@trincot的建议,我添加了
$(“#distinct_id”).val(distinct_id)
初始化。。。加载了
函数,它就工作了

作为参考,以下是生成的代码:

mixpanel.init("MY_TOKEN", {
    loaded: function(mixpanel) {
        distinct_id = mixpanel.get_distinct_id();
        $(document).ready(function(){
            $("#distinct_id").val(distinct_id);
        });
    }
});
此外,您可以跳过
$(document).ready(function(){})全部,只需执行此操作,因为您只需要mixpanel即可加载:

mixpanel.init("MY_TOKEN", {
    loaded: function(mixpanel) {
        distinct_id = mixpanel.get_distinct_id();
        $("#distinct_id").val(distinct_id);
    }
});

第一个代码块中缺少一个引号。发现得很好,谢谢。必须删除的是,当我删除此问题的Mixpanel标记时,
ready
回调可能会在
pixpanel.init…加载之前触发
回调,如果移动该小
$(文档)更好的话.ready
块在
init…内加载
回调。如果
控制台.log
get\u distinct\u id
之后立即获取id,会得到什么?
distinct\u id
是否定义为全局变量?您是否尝试过使用js:
document.getElementById('distinct\u id')。value=distinct\u idstringify
的code>并将其放入mixpanel
init-loaded
mixpanel.init("MY_TOKEN", {
    loaded: function(mixpanel) {
        distinct_id = mixpanel.get_distinct_id();
        $("#distinct_id").val(distinct_id);
    }
});