0

我正在研究并使用带有 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 进行全屏模式?

4

1 回答 1

0

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

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

于 2013-08-12T15:09:08.043 回答