JS 中的短路在第一个输入时停止
Short circuit in JS stopping on first input
我在尝试在我制作的网页上使用短路时遇到了一些问题。
我正在尝试使用
document.webkitExitFullscreen() || document.mozCancelFullScreen() || document.exitFullScreen();
但它似乎在第一次尝试时就停止了,尽管我希望它会在第一个参数出现未定义后继续。
如果我简单地输入
document.mozCancelFullScreen()
然后它工作正常
我想知道是否有人可以指出我在这里做错了什么
顺便说一下,屏幕截图是在 firefox 中拍摄的。
提前致谢
您的代码正在尝试 调用 document.webkitExitFullscreen
,如果它 returns 是一个虚假值,调用 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;
}
});
...这避免了整个 "do I need call
or not?" 问题。
问题是您已经在调用该函数,因此如果它不存在,您将收到错误消息。
你可以尝试类似的东西:
(document.webkitExitFullscreen || document.mozCancelFullScreen || document.exitFullScreen)();
我在尝试在我制作的网页上使用短路时遇到了一些问题。
我正在尝试使用
document.webkitExitFullscreen() || document.mozCancelFullScreen() || document.exitFullScreen();
但它似乎在第一次尝试时就停止了,尽管我希望它会在第一个参数出现未定义后继续。
如果我简单地输入
document.mozCancelFullScreen()
然后它工作正常
我想知道是否有人可以指出我在这里做错了什么 顺便说一下,屏幕截图是在 firefox 中拍摄的。 提前致谢
您的代码正在尝试 调用 document.webkitExitFullscreen
,如果它 returns 是一个虚假值,调用 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;
}
});
...这避免了整个 "do I need call
or not?" 问题。
问题是您已经在调用该函数,因此如果它不存在,您将收到错误消息。 你可以尝试类似的东西:
(document.webkitExitFullscreen || document.mozCancelFullScreen || document.exitFullScreen)();