Mixpanel Javascript-返回对象的distinct_id变量
我正在尝试在我的注册表上设置Mixpanel人员跟踪,但我无法将Mixpanel的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
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 id不使用stringify
的code>并将其放入mixpanelinit-loaded
mixpanel.init("MY_TOKEN", {
loaded: function(mixpanel) {
distinct_id = mixpanel.get_distinct_id();
$("#distinct_id").val(distinct_id);
}
});