我正在为即将推出的Chrome Web商店创建一个Web应用程序。是否有一种方法可以模拟按下F11?或者只需一个命令即可使当前窗口全屏显示?
我意识到这是一个非常古老的问题,并且提供的答案已经足够了。由于这个问题仍然活跃,而我正在研究全屏模式,所以在这里我给出一个更新:
有一种方法可以“模拟”F11键,但无法自动化,实际上需要用户点击一个按钮才能触发全屏模式。
使用这个示例,用户可以通过点击按钮来切换全屏模式:
HTML元素可作为触发器:
<input type="button" value="click to toggle fullscreen" onclick="toggleFullScreen()">
JavaScript:
function toggleFullScreen() {
if ((document.fullScreenElement && document.fullScreenElement !== null) ||
(!document.mozFullScreen && !document.webkitIsFullScreen)) {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
}
这个例子让你可以在不进行任何更改的情况下启用全屏模式,也就是说,你可以切换到全屏模式,但要返回正常屏幕则需要使用 F11 键:
作为触发器的 HTML 元素:
<input type="button" value="click to go fullscreen" onclick="requestFullScreen()">
JavaScript:
function requestFullScreen() {
var el = document.body;
// Supports most browsers and their versions.
var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen
|| el.mozRequestFullScreen || el.msRequestFullScreen;
if (requestMethod) {
// Native full screen.
requestMethod.call(el);
} else if (typeof window.ActiveXObject !== "undefined") {
// Older IE.
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
msRequestFullscreen
和msExitFullscreen
(注意小写s
)。 - RevanProdigalKnightif (!document.fullScreenElement && !document.mozFullScreen && !document.webkitIsFullScreen) {
。 - Lawrence Dolvar elem = document.getElementById("myvideo");
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
}
javascript: document.body.webkitRequestFullScreen();
进入全屏模式 ← 你可以将此链接拖动到书签栏中创建书签,但是之后你需要编辑它的URL:删除http://delete_me/
及其后面的单斜杠,只保留javascript:
[…]
这个方法在Google Chrome中适用。你需要测试它是否适用于你的环境,并使用其他函数调用的不同措辞,例如javascript:document.body.requestFullScreen();
- 参见其他答案中可能的变体。
基于@Zuul和@default的回答-谢谢!
javascript:void%20document.body.appendChild((e=%3E%7Be.onclick=()=%3E%7Bdocument.documentElement.requestFullscreen();e.parentNode.removeChild(e)%7D;e.innerHTML='FULLSCREEN';e.style='position:fixed;left:0;top:0;z-index:999999999999';return%20e%7D)(document.createElement('BUTTON')))
并使用 void
避免替换当前文档与函数返回值。 - Walf如果你想将整个选项卡切换到全屏模式(就像按下F11键一样),document.documentElement
就是你要寻找的元素:
function go_full_screen(){
var elem = document.documentElement;
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
}
}
document.documentElement
和document.body
是否有区别(就像@Zuul在上面的旧答案中所做的那样)? - Aaron Thoma我尝试了这个问题的其他答案,但不同浏览器API中存在错误,特别是Fullscreen
与FullScreen
。以下是我的代码,适用于主要浏览器(截至2019年第一季度),并且应该在它们标准化后继续有效。
最初的回答:
我尝试了其他答案,但发现不同浏览器API存在错误,特别是Fullscreen和FullScreen之间的区别。下面是我可用于主流浏览器(截至2019年第一季度)的代码,并且随着标准化的推进,应该会持续有效。
function fullScreenTgl() {
let doc=document,elm=doc.documentElement;
if (elm.requestFullscreen ) { (!doc.fullscreenElement ? elm.requestFullscreen() : doc.exitFullscreen() ) }
else if (elm.mozRequestFullScreen ) { (!doc.mozFullScreen ? elm.mozRequestFullScreen() : doc.mozCancelFullScreen() ) }
else if (elm.msRequestFullscreen ) { (!doc.msFullscreenElement ? elm.msRequestFullscreen() : doc.msExitFullscreen() ) }
else if (elm.webkitRequestFullscreen) { (!doc.webkitIsFullscreen ? elm.webkitRequestFullscreen() : doc.webkitCancelFullscreen()) }
else { console.log("Fullscreen support not detected."); }
}
//set height of html
$("html").css("height", screen.height);
//set width of html
$("html").css("width", screen.width);
//go to full screen mode
document.documentElement.webkitRequestFullscreen();
非常简单,试试这个
<div dir="ltr" style="text-align: left;" trbidi="on">
<!-- begin snippet: js hide: false console: true babel: null -->
var elem = document.getElementById("myvideo");
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
//Internet Explorer 10 and earlier does not support the msRequestFullscreen() method.