问题
I'm trying to monitor when the browser enters fullscreen mode.
This blog is referenced everywhere I search as the guide on the fullscreen API.
http://robertnyman.com/2012/03/08/using-the-fullscreen-api-in-web-browsers/
This SO answer also claims this works.
Fullscreen API: Which events are fired?
Here is my code with jQuery, but it's not firing the event.
$(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange",function(){
console.log("bang!");
});
Seems simple enough, but it doesn't fire in Chrome. Any idea what I'm doing wrong?
UPDATE:
Discovered something new. The events are working only if JavaScript calls the requestFullScreen API, but not if the user presses F11.
回答1:
fullscreenchange events do work, but only if the fullscreen mode is triggered by requestFullscreen.
There appears to be a security restriction that prevents JavaScript from monitoring if a user manually enables fullscreen mode via a hotkey.
Alternatively, you can monitor the resize events to see if the window matches the desktop size, but this seems like a hack to me (i.e. would this work on dual-monitors?)
I decided to abandon monitoring of fullscreen mode, and just use the API to toggle the state.
来源:https://stackoverflow.com/questions/21103478/fullscreenchange-event-not-firing-in-chrome