当跨页面引入一个脚本时,可能会遇到事件监听器无法正常工作的情况

78 阅读1分钟

这通常是因为新页面的 DOM 在加载时,原有的事件监听器未能正确绑定。为了实现全局监听,可以采用以下方法:

解决方案

  1. 使用事件委托

    • 将事件监听器绑定到一个父元素上,而不是直接绑定到目标元素。这样即使目标元素在 DOM 中动态生成,事件仍然会被捕获。
  2. 确保脚本在 DOM 加载后执行

    • 确保你的脚本在 DOM 完全加载后执行,可以使用 defer 属性或 DOMContentLoaded 事件。
  3. 使用 window 对象

    • 如果需要在多个页面中共享逻辑,可以将事件监听器绑定到 window 对象。

【代码参考】 [jcode](https://code.juejin.cn/pen/7488634370333671459)