检查Mixpanel库是否已加载

Dmy*_*kyi 5 javascript mixpanel

我们的网站使用mixpanel进行跟踪。

var mixPanelId = mixpanel.get_distinct_id();
$('#trial, #order').each(function () {
  $(this).append("<input type='hidden' value='"+mixPanelId+"' name='MixpanelId' />");
});
Run Code Online (Sandbox Code Playgroud)

但是,如果 mixpanel 未加载,则主对象没有get_distinct_id。处理这种情况最正确的方法是什么?

到目前为止,我正在进行正常的 js 属性检查(但我想知道 Mixpanel 是否有更正确的方法来执行此操作):

mixpanel.hasOwnProperty('get_distinct_id')
Run Code Online (Sandbox Code Playgroud)

Dmy*_*kyi 2

正确的方法是使用加载库后将触发的 init 属性。有关详细信息,请阅读如何防止 get_distinct_id 和 get_property 返回未定义

mixpanel.init('token-id', {'loaded':function() {
    var distinct_id = mixpanel.get_distinct_id();
}})
Run Code Online (Sandbox Code Playgroud)

检查财产并不是处理情况的正确方法。您可以在加载库之前执行此检查。

mixpanel.hasOwnProperty('get_distinct_id')
Run Code Online (Sandbox Code Playgroud)