Javascript 如何在Firefox中保存全屏状态?
接下来,我在我的网站中放置了以下代码,它只需要整个文档(html元素),一旦用户单击页面中的任何位置,页面就会全屏显示,一旦再次单击,页面就会恢复正常Javascript 如何在Firefox中保存全屏状态?,javascript,android,Javascript,Android,接下来,我在我的网站中放置了以下代码,它只需要整个文档(html元素),一旦用户单击页面中的任何位置,页面就会全屏显示,一旦再次单击,页面就会恢复正常 var videoElement = document.getElementsByTagName('html')[0]; function toggleFullScreen() { if (!document.mozFullScreen) { if (videoElement.mozRequestFullScreen)
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的。看看这个针对Firefox的插件,我还没有尝试过,因为我在手机上发布了这个插件,它的描述说它可以强制全屏启动。我只是引用他们的描述 永远保存最后状态或全屏强制启动!简朴 为此目的完成 编辑:及其链接
像这样使用
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)
根据我的实验,这是不可行的,从客户端浏览器javascript
此api需要用户交互。我们无法通过脚本激活全屏
从全屏api规范:
如果没有以前建立的用户,则支持全屏显示
偏好、安全风险或平台限制
如果出现以下情况之一,则允许算法请求全屏显示
这是真的:
The algorithm is triggered by user activation.
The algorithm is triggered by a user generated orientation change.
关于激活事件:
如果出现以下情况之一,则通过用户激活触发算法
条件是正确的:
The algorithm is triggered by user activation.
The algorithm is triggered by a user generated orientation change.
运行算法的任务当前正在处理
单击事件的isTrusted属性为true的激活行为
运行算法的任务当前正在运行
isTrusted属性为true和的事件的事件侦听器
其类型为:
我们不能从脚本触发全屏,或者如果是这样,脚本必须由用户触发
包括模拟点击不起作用,这是常规行为,旨在保护用户体验
经过一些反思,我们在这一点上达成了一致,想象一下,任何广告页面都可以全屏播放,网络浏览将是一个地狱
您在评论中说:«我是这里唯一的用户»
如果使用unix,您可以做什么((其他操作系统中可能存在替代方案))
使用(轻量级webkit浏览器),这将启动真正的全屏
midori -e Fullscreen -a myurl.html
据我所知,无法从命令行以全屏状态启动firefox或chromium
但可行的方法是在页面启动后,在系统级触发一次F11点击,关注好的窗口。((android adb shell中的sendkey?)
我能做到
下面是一个管道命令行,它将使用myurl.html启动firefox,搜索最新的firefox窗口id,然后在此窗口上触发F11键。。(再次按F11退出)
这应该很容易适应其他浏览器
作为最后一种选择,请查看
electron
或nw.js
这是一种极端的解决方法,但您可以将您的网站设置为一个“显示”:“全屏”。然后你可以。你不能……如果可能的话,听起来真的很糟糕。作为一个用户,如果一个网站一加载就自动全屏显示,我会感到非常惊讶和困惑,即使我上次访问时它是一个全屏显示的网站。问题是,我是这里唯一的用户,我确实明白你的意思。不幸的是,对于Android版Firefox,这是不可用的,但谢谢!谢谢,但它不起作用,我会看看localStorage。这正是我要找的,我需要确保它起作用,我会回来接受你的回答;)非常感谢。