我们如何在javascript中以编程方式进入和退出全屏模式?
我使用了我学到的代码使浏览器全屏显示(它可以工作),但是我试图修改它的一个版本以退出全屏显示失败。处理这些非标准API有点棘手,每个浏览器的实现方式都有点不同 代码如下:我们如何在javascript中以编程方式进入和退出全屏模式?,javascript,browser,fullscreen,Javascript,Browser,Fullscreen,我使用了我学到的代码使浏览器全屏显示(它可以工作),但是我试图修改它的一个版本以退出全屏显示失败。处理这些非标准API有点棘手,每个浏览器的实现方式都有点不同 代码如下: // Bring the page into full-screen mode - Works! function requestFullScreen(element) { // Supports most browsers and their versions. var requestMethod = el
// Bring the page into full-screen mode - Works!
function requestFullScreen(element) {
// Supports most browsers and their versions.
var requestMethod = element.requestFullScreen ||
element.webkitRequestFullScreen ||
element.mozRequestFullScreen ||
element.msRequestFullScreen;
if (requestMethod) {
requestMethod.call(element);
} else if ( typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
// Exit fullscreen - Doesn't work!
function exitFullScreen(element){
var requestMethod = element.exitFullscreen ||
element.mozCancelFullScreen ||
element.webkitExitFullscreen ||
element.msExitFullscreen;
if (requestMethod) {
requestMethod();
} else {
console.log("Oops. Request method false.");
}
}
电话:
var $fullscreenButton = $("#fullscreen-button");
var $smallscreenButton = $("#smallscreen-button");
$fullscreenButton.on("click", function() {
var elem = document.body;
// Make the body go full screen.
requestFullScreen(elem);
});
$smallscreenButton.on("click", function() {
var elem = document.body;
// Exit full screen.
exitFullScreen(elem);
});
exitFullScreen函数有什么问题?我怎样才能修好它
编辑:
- 我正在为此开发一个JSFIDLE李>
- “不工作”,我的意思是它输出
“Oops.Request方法false。”
- 我正在使用参数
调用函数document.body
exitFullScreen()
虽然全屏请求功能在浏览器中正常工作,但我不确定这是因为我自己的错误,还是与JSFIDLE有关。对于进入全屏,大小写有一些问题 对于退出,您需要在
文档
上调用它,而不是在正文
上调用它,并且您还需要正确地应用它,而不是调用对方法的引用
sorequestMethod.call(元素)代码>也用于退出
请参见
(在最新的IE/Chrome/FireFox上测试)也许有人会评论为什么投票失败?现在几乎不可能在Stackoverflow上提问,这里的每个人都疯狂地投票,不建议改进,只攻击任何不完美、不普遍或。。。不管你们这些人在这里找什么。在其他Stack Exchange社区中,如此多的问题获得了投票和良好的反馈。在这里,整个系统就像下了地狱。很多人的反应都是消极的。。只是我的观察:)@MatthewLock不,你错了。工作示例适用于Code Review.SE-堆栈溢出适用于不工作的代码。这段代码很容易验证,已经简化为我的精确问题,并且完全是直截了当的。您在控制台中遇到错误了吗?您遇到了什么浏览器的问题?我相信@MatthewLock想要的是,但事实并非如此。这不是必需的,但肯定有帮助;用户可以出于任何理由否决投票,这样他们就不会被捆绑在一起。我也不会因为选票太低而产生太多泡沫,这只是白费力气。@WebDeveloper404,“不起作用”并没有多大帮助。。什么不起作用?你有错误吗?你有自己的控制台吗?记录信息?你怎么称呼这些方法?你在传递什么论据?哪些浏览器会出现问题?这些问题中的每一个都可能是失败的原因。@gabykag.Petrioli我已经在问题中添加了这些细节。感谢您提出的改进建议!可能有点讽刺的是,OP对问题的“平淡无奇”感到非常悲伤,但你的回答只是在仔细查看突发帧的来源时完整地展示了解决方案。你能解释一下为什么需要.call()
?由于这些方法已经附加到元素(element.msExitFullscreen
),我不明白为什么requestMethod()
不够。@WebDeveloper404,因为如果调用它的引用,执行函数具有不同的上下文。作为参考,fiddle由于这个问题(从Firefox的控制台)无法工作:“全屏显示请求被拒绝,因为包含iFrame的文档中至少有一个没有“allowfullscreen”属性。因此,由于小提琴在iFrame中,因此它不起作用。”。