为什么浏览器有一个 beforeunload 事件,即使我没有在我的代码中使用它?

Why the browser has a beforeunload event even though I do not use it in my codes?

我有一个功能可以帮助用户像这样向上滚动到页面顶部:

function toTheTop(){
        document.getElementByID('topUpBtn').addEventListener('click', ()=>{
            scrollTo( { top: document.querySelector('h1').getBoundingClientRect().top,
        behavior: 'smooth'})
    });
}

export {
    toTheTop
}

我正在使用 Webpack 来组织代码。我在入口点调用了 toTheTop 函数,如下所示:

import { toTheTop } from './js/TopUpButton.js';

if(document.readyState !== 'loading') {
    console.log('document is already ready');
    toTheTop();
} 
else{
    document.addEventListener('DOMContentLoaded', ()=>{
        console.log('document was not ready'),
        toTheTop();
    });
}

export {
    toTheTop
}

我已经在没有 Webpack 的情况下测试了这个功能并且它有效。然而,当与 Webpack 一起使用时,它没有。检查我只看到的按钮的控制台:

DOMContentloaded
click

但是使用 Webpack 设置,我看到一个名为 beforeunload 的奇怪行,顺序如下:

beforunload
click

打开我看到的这一行:

self.addEventListener("beforeunload", function () {
  status.isUnloading = true;
});

我根本没有实现这段代码。我寻找了 beforeunload 的用法 - 这仅在我们想在离开页面之前向用户提示某些内容时使用。

我的问题是:为什么我的代码中有 beforeunload 事件处理程序?这与我的 Webpack 设置有关吗?我该如何解决我的问题?

想了好几天,还是搞不定

我已经修好了。幸运的是我的代码没有任何问题。该功能不起作用,因为 css 个元素在不同页面上相互冲突。很难找到,但谢谢你们。发布问题帮助我三思而后行。