我在尝试在我制作的网页上使用短路时遇到了一些问题。
我正在尝试使用
document.webkitExitFullscreen() || document.mozCancelFullScreen() || document.exitFullScreen();
但它似乎在第一次尝试时就停止了,尽管我本来希望它会在第一个参数出现未定义后继续。
如果我简单地输入
document.mozCancelFullScreen()
然后它工作正常
我想知道是否有人可以指出我在这里做错了什么 顺便说一下,屏幕截图是在 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/