我正在尝试使用elem.requestFullscreen
API,但出现此错误(在Ubuntu的Chrome 70上,未在其他浏览器上进行测试):
无法在“元素”上执行“ requestFullscreen”:API只能是 由用户手势启动。
这看起来像是一条清晰的错误消息。我很高兴浏览器可以防止开发人员在没有用户交互的情况下触发全屏事件。
但就我而言,我有一个带有点击事件的按钮。点击事件如何不是“用户手势”?我看过this answer。
这是我的代码:
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()
}
})
<button id="toggle">
Toggle
</button>
<div id="fullscreen">
fullscreen content
</div>
https://jsfiddle.net/svierkant/15buv80z/9/
在这种情况下,“用户手势”到底是什么?如何通过点击事件切换全屏显示?
答案 0 :(得分:0)
一个Chrome扩展程序(Ghostery –隐私广告拦截器)是问题所在。禁用扩展后,requestFullscreen
API再次正常工作。