我制作的HTML5应用程序必须以全屏模式运行。当用户离开全屏或切换到多显示器设置中的另一个窗口时,应用必须收到通知并暂停。
我创建了一个超时,不断检查浏览器是否有焦点并且全屏显示:
function check() {
// detect state
var isFullscreen = $(document).fullScreen();
var isFocused = document.hasFocus();
// force user out of fullscreen if focus is lost
if(isFullscreen && !isFocused) {
isFullscreen = false;
$(document).fullScreen(false);
}
if(!isFullscreen) {
pause();
} else {
unpause();
}
}
setInterval(check, 200);
此代码在Chrome和IE中完美运行。所有浏览器都在页面上方显示确认窗口。
但是,仅在Firefox中,单击"确认"此窗口中的按钮使浏览器失去焦点! check
函数会立即检测到它并强制用户退出全屏,导致应用程序无法使用。
此问题是否有任何已知的解决方法?