b站网页load事件多次触发及可靠加载时机判断详解
油猴脚本监听B站视频网页加载事件时,load事件可能多次触发,本文将分析原因并提供更可靠的网页加载完成判断方法。
问题:
使用window.onload和window.addEventListener('load', ...)监听B站视频网页加载事件,发现window.onload只触发一次,而addEventListener可能触发多次(例如三次),两者同时使用则触发次数更多。浏览器为Firefox,脚本注入时机为document-start。iframe的存在可能导致多次触发,但iframe内容加载通常晚于load事件,因此需要更可靠的加载完成判断方法。
分析:
问题根源很可能在于其他油猴脚本。这些脚本可能创建了iframe,每个iframe加载都会触发load事件。建议屏蔽其他脚本进行测试,验证是否为干扰导致。 另一种方法是修改脚本,避免在iframe中运行。
更可靠的加载时机判断:
仅依赖load事件不可靠,建议使用以下方法:
-
MutationObserver: 监听DOM变化。当页面内容不再变化时,可认为页面加载完成。需要仔细设计判断条件,避免误判。
-
setInterval定时轮询: 设定合适的轮询间隔,并定义页面加载完成的条件(例如,检查特定元素是否存在或特定属性是否已设置)。 需谨慎选择轮询间隔和判断条件,平衡性能和准确性。
选择哪种方法取决于具体应用场景和性能要求。 这两种方法都比单纯依赖load事件更可靠,能更准确地判断B站网页的完全加载状态。
以上就是B站网页load事件为何多次触发?如何可靠判断网页加载完成?的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论