Optimizely 代码片段在控制台上和通过注入器工作,但不是通过优化

Optimizely 代码片段在控制台上和通过注入器工作,但不是通过优化,optimizely,Optimizely,有没有人经历过只有部分代码被Optimizely忽略的情况 所以我的开发环境在chrome上使用了npm和injector。 到目前为止,我的代码运行良好。但当我复制粘贴构建版本以优化自定义JS时,只有其中的某些部分被忽略。 特别是这一部分,这让我想到,除了不支持ES6之外,Optimizely是否还有代码限制 // rebind events to the new cartactivator $.each($._data($OldCartActivator[0], "events"), fun

有没有人经历过只有部分代码被Optimizely忽略的情况

所以我的开发环境在chrome上使用了npm和injector。 到目前为止,我的代码运行良好。但当我复制粘贴构建版本以优化自定义JS时,只有其中的某些部分被忽略。 特别是这一部分,这让我想到,除了不支持ES6之外,Optimizely是否还有代码限制

// rebind events to the new cartactivator
$.each($._data($OldCartActivator[0], "events"), function () {
    // iterate registered handler of original
    $.each(this, function () {
        $CartActivator.bind(this.type, this.handler);
    });
});
我只能说这一部分,因为其余的代码执行得很好。 我不明白为什么


请开导我

我设法让它工作了!这显然是时间问题,上面的代码在有任何事件绑定到旧DOM之前执行。所以我用waitUntil来呃,等等。。。直到oldcartactivator在尝试复制之前实际绑定了任何事件

  utils.waitUntil(function(){
    return $._data($OldCartActivator[0], "events")!==undefined && $CartActivator ;
  }).then(function(){
    try{
                $.each($._data($OldCartActivator[0], "events"), function () {
              // iterate registered handler of original
              $.each(this, function () {
                $CartActivator.bind(this.type, this.handler);
              });
            }); 
    }catch(err){}

  });
如果您希望多个事件在以后很长时间内附加,但时间有限,则轮询也会起作用

希望这对同舟共济的人有所帮助。干杯~