javascript - JS 中的短路在第一个输入时停止

标签 javascript fullscreen short-circuiting

我在尝试在我制作的网页上使用短路时遇到了一些问题。

我正在尝试使用

document.webkitExitFullscreen() || document.mozCancelFullScreen() || document.exitFullScreen();

但它似乎在第一次尝试时就停止了,尽管我本来希望它会在第一个参数出现未定义后继续。

如果我简单地输入

document.mozCancelFullScreen()

然后它工作正常

http://i.imgur.com/rINs1kR.png

我想知道是否有人可以指出我在这里做错了什么 顺便说一下,屏幕截图是在 firefox 中拍摄的。 提前致谢

最佳答案

您的代码正在尝试调用 document.webkitExitFullscreen,如果它返回一个虚假值,则调用 document.mozCancelFullScreen

但是,如果 document.webkitExitFullscreen 本身是 undefined,您将在尝试调用它时遇到错误,代码将在此时停止运行。

也许:

var exitFullScreen = document.webkitExitFullscreen || document.mozCancelFullScreen || document.exitFullScreen;
if (exitFullScreen) {
    exitFullScreen.call(document); // Just `exitFullScreen();` may work as well
}

或者:

["webkitExitFullscreen", "mozCancelFullScreen", "exitFullScreen"].some(function(name) {
    if (document[name]) {
        document[name]();
        return true;
    }
});

...这避免了整个“我需要 call 吗?”问题。

关于javascript - JS 中的短路在第一个输入时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41285915/

相关文章:

javascript - AngularJS:ng-controller 多种功能

javascript - 将 Canvas 对象保存为 json

HTML网页全屏

javascript - 使用 && || 的单线短路评估在 JavaScript 中

javascript - 如何在单击按钮并按 Enter 键时启动 jquery 函数

javascript - 如何在不创建滚动条的情况下用 Canvas 元素填充浏览器窗口?

在 Windows 7 上使用 GLUT 的 OpenGL,全屏模式不显示消息框

javascript - 编写 if 语句的新方法

haskell - 折叠既是恒定空间又是短路

javascript - Android 键盘更换网页 View