此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

UserActivation

Baseline 2023
Newly available

Since November 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

UserActivation 接口提供有关用户当前是否正在与页面交互,或者自页面加载以来是否已完成交互的信息。

此 API 仅在 window 上下文中可用,web worker 中不可用。

实例属性

UserActivation.hasBeenActive 只读

指示当前窗口是否具有粘性(用户)激活。

UserActivation.isActive 只读

指示当前窗口是否具有瞬态(用户)激活。

描述

此类型的对象可通过 navigator.userActivation 属性访问,并可用于查询有关 window 的用户激活状态的信息。

用户激活意味着用户当前正在与页面交互,或者自页面加载以来已完成交互。用户激活可以通过按钮点击、指针触摸或其它的用户界面的交互来触发。

window 用户激活状态有两种:

  • 瞬态激活(用户当前正在与页面交互)和
  • 粘性激活(自页面加载以来,用户至少交互过一次)。

有关更多信息以及需要粘性或瞬态激活的 API 列表,请参见由用户激活控制的特性

示例

检查最近是否执行过用户手势

使用 navigator.userActivation 访问 UserActivation 对象,然后使用 UserActivation.isActive 检查用户当前是否正在与页面进行交互(瞬态激活)。

js
if (navigator.userActivation.isActive) {
  // 例如,继续请求播放媒体
}

检查是否执行过用户手势

使用 UserActivation.hasBeenActive 检查用户是否曾与页面进行过交互(粘性激活)。

js
if (navigator.userActivation.hasBeenActive) {
  // 例如,继续自动播放动画。
}

规范

Specification
HTML
# the-useractivation-interface

浏览器兼容性

参见