0

有没有人经历过只有部分代码被 Optimizely 忽略?

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

// 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);
    });
});

我只想说这部分,因为其余的代码执行得很好。我不明白为什么。

请赐教。

4

1 回答 1

1

我设法让它工作!这显然是时间问题,上面的代码在任何事件绑定旧 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){}

  });

如果您期望在很晚之后但在有限的时间内附加多个事件,则投票也将起作用。

希望这可以帮助同一条船上的人。干杯~

于 2020-02-25T06:18:00.223 回答