if (!document.fullscreenElement
&& !document.mozFullScreenElement
&& !document.webkitFullscreenElement
&& !document.msFullscreenElement) {
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
} else if (document.documentElement.msRequestFullscreen) {
document.documentElement.msRequestFullscreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullscreen) {
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
}
else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
我有用于切换全屏的代码。它有效,但它有一些小问题。
当我点击全屏按钮时,退出刷新全屏模式后,如果我按F11并刷新,则全屏不会退出。
如果启用了全屏模式,按F11后,单击全屏按钮将无效
我如何解决这个问题?
答案 0 :(得分:2)
我不知道你是否能解决这些问题。它们之所以发生是因为有两种不同的全屏模式:
虽然您可以使用JS控制第一个,但您无法控制另一个。从可用性/安全性的角度来看,这是有道理的:您应该能够控制页面内的行为,但不能控制在页面外的行为或用户的偏好。
您遇到的问题是因为:
fullscreen
flag is unset。当您使用API进入全屏模式时,您正在设置该标志,但是当您刷新页面时,标志将转到其原始值(未设置)并且全屏丢失。与重新加载页面时重置任何其他JavaScript变量的方式相同。fullscreen
标志。您可以在demo by Robert Nyman中看到差异。他添加了CSS,因此在:fullscreen
时页面会变红。按F11并注意背景如何变为红色,现在单击"全屏/取消全屏"用于查看背景颜色变化的按钮。