什么意思是“由用户手势启动”。在 element.requestFullscreen() API 中?

Ste*_*ant 6 javascript google-chrome

我正在尝试使用elem.requestFullscreenAPI,但出现此错误(在 Ubuntu 上的 Chrome 70 上,未在其他浏览器上测试):

无法在“元素”上执行“requestFullscreen”:API 只能由用户手势启动。

这看起来像是一条明确的错误消息。我很高兴浏览器阻止开发人员在没有用户交互的情况下触发全屏事件。

但就我而言,我有一个带有点击事件的按钮。点击事件如何不是“用户手势”?我看过这个答案

这是我的代码:

let button = document.getElementById('toggle')

button.addEventListener('click', function ()
{
  let elem = document.getElementById('fullscreen')
   
  if (elem.requestFullscreen) {
    elem.requestFullscreen()
  } else if (elem.mozRequestFullScreen) { /* Firefox */
    elem.mozRequestFullScreen()
  } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
    elem.webkitRequestFullscreen()
  } else if (elem.msRequestFullscreen) { /* IE/Edge */
    elem.msRequestFullscreen()
  }
})
Run Code Online (Sandbox Code Playgroud)
<button id="toggle">
Toggle
</button>

<div id="fullscreen">
fullscreen content
</div>
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/svierkant/15buv80z/9/

在这种情况下,“用户手势”究竟是什么?如何通过单击事件切换全屏?

Ste*_*ant 1

Chrome 扩展程序(Ghostery \xe2\x80\x93 隐私广告拦截器)是问题所在。禁用扩展后,requestFullscreen API 再次正常工作。

\n