登录
首页 >  文章 >  前端

B站网页load事件为何频繁触发?教你准确判断B站网页加载完成的技巧

时间:2025-03-14 13:51:11 152浏览 收藏

B站网页`load`事件反复触发困扰着许多油猴脚本开发者?本文深入分析了`window.addEventListener("load", ...)`在B站页面多次触发(最多三次)的原因,并指出这并非脚本本身问题,很可能由其他脚本(例如创建iframe)间接导致。文章详细阐述了为什么单纯依靠`load`事件不可靠,并提供了两种更可靠的B站网页加载完成判断方法:使用`MutationObserver`监听DOM变化或使用`setInterval`周期性检查页面状态,帮助开发者编写更稳定、高效的油猴脚本。

B站网页load事件多次触发及可靠加载完成判断方法

本文分析了油猴脚本在B站网页中window.addEventListener("load", ...)多次触发load事件的问题,并探讨了可靠判断B站网页加载完成的策略。

B站网页load事件为何多次触发?如何可靠地判断B站网页加载完成?

问题现象: 油猴脚本使用window.addEventListener("load", ...)监听B站页面加载,load事件却多次触发(最多三次),而window.onload仅触发一次。脚本注入时机为@run-at document-start,排除了浏览器版本等因素。

问题根源分析: 问题可能并非脚本本身,而是其他油猴脚本间接导致。其他脚本可能创建了iframe,iframe加载也会触发load事件,从而造成多次触发。建议暂时禁用其他油猴脚本进行验证。 如果问题源于iframe,则可在脚本中添加条件,避免在iframe环境中运行。

可靠加载完成判断: 单纯的load事件不可靠。 对于通过ajax加载的内容,load事件不会触发,需要额外判断。 建议使用以下方法:

  • MutationObserver: 监听DOM树的变化,判断页面关键元素是否加载完成。需要仔细设计监控策略,避免误判或性能问题。
  • setInterval: 周期性检查页面状态,例如检查特定元素是否存在或页面内容是否达到预期状态。同样需要谨慎设计监控策略,避免性能损耗。

选择何种方法取决于具体需求和页面结构。 需要根据B站页面的具体DOM结构和加载机制,制定合适的监控策略,才能准确判断网页加载完成。 这部分需要更深入的分析和代码实现。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《B站网页load事件为何频繁触发?教你准确判断B站网页加载完成的技巧》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>