首页 > 解决方案 > 检测浏览器是否已经在加载另一个页面

问题描述

我正在构建一些 JS 以安装在人们的网站上。我正在尝试检测浏览器是否远离我的脚本安装的页面。监听事件很容易beforeunload,但是如果我的脚本在用户单击某个链接后加载了怎么办?

事件顺序为:

标签: javascript

解决方案


在这种特定情况下,您无法检测到这一点。从页面 A 导航的行为将停止加载脚本,即使在页面 B 加载之前也是如此。

规范的相关部分是7.8.1 Navigating across documents详细说明了当浏览器被要求导航时会发生什么(在您的示例中单击页面 B 的链接)。步骤 11 说:

中止浏览上下文的活动文档。

中止步骤清楚地表明,任何仍在进行中的活动文档的获取或解析都将被简单地丢弃。


推荐阅读