2013-08-12 39 views
0

我正在研究和使用带FireFox的html5全屏API,我有一个本地html文件,名称'SamplePlayer.html'。如果我发起这个文件,并点击“全部”按钮,使一个元素像全屏模式:[FireFox] [HTML5 FullScreen API]如何检测用户是否点击'允许'按钮并允许全屏模式

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; 
} 

火狐显示一个对话框(也许别的东西)“按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的全屏模式?

回答

0

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

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

+0

谢谢,这是否意味着,使对话的唯一方法(也许别的东西)'按ESC退出全屏,允许全屏,允许,拒绝'消失是用户单击按钮,否则对话框始终存在?换句话说,我怎样才能让对话淡出?与JavaScript公关别的东西? – user2638168

相关问题