javascript - 检测浏览器是否已经在加载另一个页面
问题描述
我正在构建一些 JS 以安装在人们的网站上。我正在尝试检测浏览器是否远离我的脚本安装的页面。监听事件很容易beforeunload
,但是如果我的脚本在用户单击某个链接后加载了怎么办?
事件顺序为:
- 浏览器加载页面 A 并安装了我的脚本
- 我的脚本开始加载
- 用户点击页面 B 的链接
- 浏览器开始加载页面 B
- 我的脚本已加载到页面 A ← 如何检测浏览器位置现在正在更改?
解决方案
在这种特定情况下,您无法检测到这一点。从页面 A 导航的行为将停止加载脚本,即使在页面 B 加载之前也是如此。
规范的相关部分是7.8.1 Navigating across documents详细说明了当浏览器被要求导航时会发生什么(在您的示例中单击页面 B 的链接)。步骤 11 说:
中止浏览上下文的活动文档。
中止步骤清楚地表明,任何仍在进行中的活动文档的获取或解析都将被简单地丢弃。
推荐阅读
- javascript - 使用地图对象时如何在 React JS 中获取“x”元素
- php - 无法以附加模式打开流或文件:无法打开流:权限被拒绝
- asp.net - 如何在 Typescript 中将 ID 声明为数字?
- javascript - 如何通过存储在数组中来制作对象列表
- vba - 在 excel VBA 中,我正在寻找 VBA 代码,该代码每次打开电子表格时都会添加一个带有最新月末的新行项目
- django - 在自定义用户之后,我无法登录管理员并且登录在 Django 项目中不起作用
- reactjs - 来自 API 端点的数据在 React 的子组件中未定义
- javascript - 函数、对象和生成器
- javascript - 在javascript中用逗号分割字符串中的字符
- windows-subsystem-for-linux - DPDK testpmd 在 WSL2 上因“错误分配 rte 服务阵列”而失败