Kra*_*ime 22 html javascript html5
不确定以下代码片段是否可以在SO上嵌入,因为它在粘贴时不起作用,但它确实可以独立工作.
问题是,我希望这是一个切换; 不只是进入全屏模式,而是在用户全屏时退出.它完全进入全屏模式,并执行退出全屏代码(因为显示的alert()框在退出代码之后但仅在退出代码条件内运行)但它什么都不做.
我已经在这里阅读了这里,这里似乎我正在做的一切都是正确的,但缺少一些东西.你能帮忙搞清楚如何使这个程序代码工作.
function fullscreen() {
var isInFullScreen = (document.fullscreenElement && document.fullscreenElement !== null) ||
(document.webkitFullscreenElement && document.webkitFullscreenElement !== null) ||
(document.mozFullScreenElement && document.mozFullScreenElement !== null) ||
(document.msFullscreenElement && document.msFullscreenElement !== null);
var docElm = document.documentElement;
if (!isInFullScreen) {
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
} else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
} else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
} else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
}
} else {
if (docElm.exitFullscreen) {
docElm.exitFullscreen();
} else if (docElm.webkitExitFullscreen) {
docElm.webkitExitFullscreen();
} else if (docElm.mozCancelFullScreen) {
docElm.mozCancelFullScreen();
} else if (docElm.msExitFullscreen) {
docElm.msExitFullscreen();
}
alert('exit fullscreen, doesnt work');
}
}Run Code Online (Sandbox Code Playgroud)
<a onclick="fullscreen()" href="javascript:void(0);">Toggle FullScreen</a>Run Code Online (Sandbox Code Playgroud)
我也尝试添加parent.exitfs()警报代码的位置,根据这个问题接受的答案仍然没有影响
Kra*_*ime 42
弄清楚了.
显然,要进入全屏,您需要使用元素,但要退出全屏,您使用document.
这是完整的javascript函数来切换全屏,有效!
function fullscreen() {
var isInFullScreen = (document.fullscreenElement && document.fullscreenElement !== null) ||
(document.webkitFullscreenElement && document.webkitFullscreenElement !== null) ||
(document.mozFullScreenElement && document.mozFullScreenElement !== null) ||
(document.msFullscreenElement && document.msFullscreenElement !== null);
var docElm = document.documentElement;
if (!isInFullScreen) {
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
} else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
} else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
} else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及如何使用它的简单案例:
<button onclick="fullscreen()">Toggle FullScreen</button>
Run Code Online (Sandbox Code Playgroud)
您需要确保这是用户在页面上执行操作时调用的简短方法.从文档中可以看出,这是一个需要更高访问模式的功能,因此您不能(此时)自动强制全屏显示页面加载时的事件或异步事件(除非它们是来自用户操作如Click)等.