[FireFox] [HTML5 FullScreen API]如何检测用户是否单击“允许”按钮并允许全屏模式

时间:2013-08-12 06:27:43

标签: html5 firefox fullscreen

我正在研究和使用带有FireFox的html5全屏API,我有一个本地的html文件,名称为“SamplePlayer.html”。如果我启动了此文件并单击“完整”按钮,则将一个元素设置为全屏模式,如:

function launchFullScreen (element) {
  if (typeof(element) == "undefined")
    element = document.documentElement;
  if (element.requestFullScreen) {
    element.requestFullScreen();
  } 
  else if (element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  }
  else if(element.webkitRequestFullScreen) {
    element.webkitRequestFullScreen();
  }
  return true;
}

FireFox显示一个对话框(可能还有别的东西)'按ESC退出全屏,允许全屏,允许,拒绝',我的问题是,如何检测用户点击'允许'按钮,此对话框消失了?不仅元素进入完整模式,对话框仍然存在。

我测试过:

 document.addEventListener('webkitfullscreenchange', adjustElement, false); 
 document.addEventListener('mozfullscreenchange', adjustElement, false); 
 document.addEventListener('fullscreenchange', adjustElement, false); 

function adjustElement() {
   //alert("change");
   //var tmp = fullscreenElement();
   var tmp = fullscreen();
   alert(tmp);
 }

 function fullscreenElement() {
   return document.fullscreenElement ||
        document.webkitCurrentFullScreenElement ||
        document.mozFullScreenElement ||
        null;
 }

function fullscreen() {
   return document.fullscreen ||
        document.webkitIsFullScreen ||
        document.mozFullScreen ||
        false;
}

但是当用户请求全屏时,无论用户是否单击“允许”按钮,所有这些功能都返回true,如何检测用户是否单击“允许”按钮并允许使用FireFox进行全屏模式?

1 个答案:

答案 0 :(得分:0)

您无法检测是否单击了“允许”按钮,并且您不应该检测它或能够检测到它。它是用户决策和实施细节。 如果有一些“hack”来检测它,那么它将是一个随时可能发生变化的实现细节,并且很有可能仅仅为了关闭此信息泄漏而改变。

您能够检测到并且应该使用的是通过mozfullscreenchange事件进入/存在全屏模式状态更改。请参阅Using fullscreen mode文档。