0

我们在 Shopware 6 上使用范围过滤器插件,该插件在 Javascript 中绑定以下事件:

  this.sliderOriginal.addEventListener('input', this.onChangeValue.bind(this));

  if (this.sliderMiddle) {
    this.sliderMiddle.addEventListener('input', this.onChangeValue.bind(this));
  }

  this.sliderGhost.addEventListener('input', this.onChangeValue.bind(this));

我们发现,如果 Chrome 94 中的用户(这在 Firefox 中不会发生)被重定向到不同的页面,然后使用浏览器的后退按钮,则会触发这些事件,而无需用户与页面进行交互。

当我们在函数中设置断点时:

function onChangeValue(event) 

事件变量如下所示:

事件代码

调用堆栈为空:

调用栈

现在我们如何进一步调试并找到此事件的根本原因?

  • 如果事件是由另一个函数触发的,我们认为调用堆栈不应该为空。

  • 我们trusted = true认为这意味着它是由用户触发的事件

  • 但是用户只是使用了后退按钮并没有做input任何事情。

那么这个事件的原因可能是什么?这是 Chrome 错误吗?

4

0 回答 0