在 Macos (11.6.4) 上的 Safari (15.3) 上,也可能在 ios 上,启用和禁用全屏会触发“visibilitychange”事件。它不在 Chrome 和 Firefox 上。
有没有一种简单的方法来解决这个问题(不触发 safari 上的可见性变化)?
一个解决方案是在切换全屏时禁用和启用可见性更改侦听器,但它非常hacky。
一些要重现的片段:
document.addEventListener('visibilitychange', () => {console.log('visibilitychange')}, false);
document.addEventListener('webkitvisibilitychange', () => {console.log('webkitvisibilitychange')}, false);
var elem = document.getElementById("myvideo");
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.webkitRequestFullscreen) { /* Safari */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE11 */
elem.msRequestFullscreen();
}
}