关注Mozilla's API document on Fullscreen,我在我的网站上放置了以下代码,它只需要整个文档(html元素),并在用户点击页面中的任意位置后使页面全屏显示,并且一旦有另一个点击,页面恢复正常。
var videoElement = document.getElementsByTagName('html')[0];
function toggleFullScreen() {
if (!document.mozFullScreen) {
if (videoElement.mozRequestFullScreen) {
videoElement.mozRequestFullScreen();
}
} else {
if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
}
}
window.addEventListener("click", function(e) {
toggleFullScreen();
}, false);
我的问题是如何保存此全屏状态,因此每次Firefox加载时,该页面仍然是全屏。 或任何解决方法?这适用于Android版Firefox。
答案 0 :(得分:2)
这是一种极端的解决方法,但您可以将自己的网站设为progressive web app并将"display": "fullscreen"
放入其manifest。然后你可以launch your site from the home screen and use it like a fullscreen native app。
答案 1 :(得分:1)
通过我的实验和the specs,这是不可行的,来自客户端浏览器javascript
此API需要用户交互。我们无法通过脚本激活全屏。
来自全屏api规范:
如果没有以前建立的用户,则支持全屏 偏好,安全风险或平台限制。
如果满足下列条件之一,则允许算法请求全屏 是的:
The algorithm is triggered by user activation. The algorithm is triggered by a user generated orientation change.
关于激活事件:
如果满足以下任何条件,则由用户激活触发算法 条件是真的:
运行算法的任务当前正在处理 激活行为,其click事件的isTrusted属性为true。
运行算法的任务当前正在运行 isTrusted属性为true的事件的事件侦听器 其类型是:
https://html.spec.whatwg.org/multipage/interaction.html#triggered-by-user-activation
我们无法从脚本触发全屏,或者如果是这样,脚本必须由用户触发。
包括模拟点击将无效,这是常规行为,旨在保护用户体验。
有了一些反思,我们无法就此达成一致,想象任何广告页面都可以启动全屏,网络将是一个难以浏览的地方!
你在评论中说:«我是这里唯一的用户»
你能做什么如果使用unix :((可能在其他操作系统中存在替代品))。
使用midori(一个轻量级的webkit浏览器),这将启动一个真正的全屏。
midori -e Fullscreen -a myurl.html
据我所知,没有办法从命令行以全屏状态启动 firefox 或 chrome 。
但可行的是在系统级别触发 F11 点击,专注于良好的窗口,就在页面启动后。 (( sendkey 在android adb shell中?))
xdotool可以做到这一点。
这是一个管道命令行,它将使用 myurl.html 启动firefox,搜索最近的firefox窗口ID,然后在此窗口上触发F11键..(按F11 再次退出)
firefox myurl.html && xdotool search --name firefox | tail -1 | xdotool key F11
这应该很容易适应其他浏览器。
作为最后一种选择,请查看electron
或nw.js
。
答案 2 :(得分:0)
看看这个针对Firefox的添加,我还没有尝试过,因为我是从手机发布的,它的描述确实说它可以强制启动全屏。我只是引用他们的描述。
永久保存最后一个状态或强制启动!简单而且 完成此目的。
编辑:以及它的链接 https://addons.mozilla.org/en-US/firefox/addon/mfull/
答案 3 :(得分:0)
如何使用这样的localStorage
呢?
function goFullScreen() {
if (videoElement.mozRequestFullScreen) {
localStorage.setItem('fullscreenEnabled', true)
videoElement.mozRequestFullScreen();
}
}
window.onload = function () {
if (localStorage.getItem('fullscreenEnabled') === true) {
goFullScreen();
}
};
function toggleFullScreen() {
if (!document.mozFullScreen) {
goFullScreen();
} else {
if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
localStorage.setItem('fullscreenEnabled', false)
}
}
}
window.addEventListener("click", function(e) {
toggleFullScreen();
}, false)