fullscreenchange事件未在Chrome中触发

Rea*_*lar 13 javascript jquery google-chrome fullscreen

我正在尝试监控浏览器何时进入全屏模式.

在我搜索全屏API指南的任何地方都会引用此博客.

http://robertnyman.com/2012/03/08/using-the-fullscreen-api-in-web-browsers/

这个SO答案也声称这是有效的.

全屏API:触发了哪些事件?

这是我的jQuery代码,但它没有触发事件.

$(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange",function(){
        console.log("bang!");
});
Run Code Online (Sandbox Code Playgroud)

看起来很简单,但它不会在Chrome中触发.知道我做错了什么吗?

更新:

发现了一些新的东西.这些事件仅在JavaScript调用requestFullScreenAPI 时才起作用,但如果用户按下F11则不起作用.

Rea*_*lar 18

fullscreenchange事件确实有效,但仅在全屏模式被触发时才有效requestFullscreen.

如果用户通过热键手动启用全屏模式,则似乎存在阻止JavaScript监视的安全限制.

或者,您可以监视调整大小事件以查看窗口是否与桌面大小匹配,但这对我来说似乎是一个黑客攻击(即这对双显示器有效吗?)

我决定放弃监控全屏模式,只需使用API​​来切换状态.

  • `document.addEventListener("keydown", e => { if(e.key == "F11") e.preventDefault(); });` 仅在进入全屏时有效。退出全屏时不起作用。(在 Google Chrome 中)我不知道为什么。 (4认同)