我们在 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 错误吗?