首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测文档“完全活动”的时间

检测文档“完全活动”的时间
EN

Stack Overflow用户
提问于 2021-08-24 15:01:28
回答 1查看 190关注 0票数 2

在阅读各种JavaScript API的规范时,您可能会遇到这样的要求:文档在使用之前必须是“完全活动的”。下面是规范中的含义的定义:https://html.spec.whatwg.org/multipage/browsers.html#fully-active

目前尚不清楚的是如何知道文档是否完全处于活动状态。例如,WakeLock API要求文档是完全活动的。如果文档没有完全激活,那么调用"WakeLock.request()“将拒绝带有"NotAllowedError”错误对象的返回承诺。但是,它可能返回"NotAllowedError“而没有指定在给定情况下的原因。

因此,在尝试使用需要文档的API之前,我如何主动地确定文档是否完全处于活动状态?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-24 16:22:35

页面中有一个部分:https://html.spec.whatwg.org/multipage/browsers.html#active-document

当d的浏览上下文为非空时,d的浏览上下文的活动文档为d,并且d的浏览上下文是顶级的浏览上下文,或者d的浏览上下文的容器文档是完全活动的,则文档d被称为完全活动的

面对你的问题:

因此,在尝试使用需要

的APIs之前,如何主动地确定文档是否完全处于活动状态()?

让我们扩展一下规则:

  • d的浏览上下文是非空的
  • d的浏览上下文的活动文档是d
  • ,或者d的浏览上下文是顶级的浏览上下文,或者d的浏览上下文的容器文档是完全活动的

我认为可以将其转换为javascript代码,但我不能100%肯定:

代码语言:javascript
复制
function isFullyActive(s /* self */) {
    return s.window !== null
    && s.document === s.window.document
    && (s.window.top === s.window || isFullyActive(s.window.parent));
}

// you can use in this way on a top level javascript:
isFullyActive(self)

我没有找到任何关于事件或方法的API/spec来检查文档是否完全处于活动状态。

参考文献:

浏览器上下文:How to access "browsing context" in JavaScript?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68909643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档