为什么window.onload = launchFullscreen(document.documentElement);不行?

时间:2014-04-30 08:35:44

标签: javascript html

我使用launchFullscreen()函数获取页面全屏。使用按钮onClick可以完美地工作。但它不适用于window.onload。有没有办法从onload调用该函数。

window.onload = launchFullscreen(document.documentElement);

function launchFullscreen(element) {
    if(element.requestFullscreen) {
        element.requestFullscreen();
    } else if(element.mozRequestFullScreen) {
        element.mozRequestFullScreen();
    } else if(element.webkitRequestFullscreen) {
        element.webkitRequestFullscreen();
    } else if(element.msRequestFullscreen) {
        element.msRequestFullscreen();
    }
}

3 个答案:

答案 0 :(得分:2)

请参阅the specification

  

如果满足以下任一条件,则将任务排队以在上下文对象的节点文档上将其bubbles属性设置为true的名为fullscreenerror的事件触发,然后终止这些步骤

     

...

     

此算法不允许显示弹出窗口。

全屏模式只能在允许显示弹出窗口时触发。

您只能在响应用户事件时显示弹出窗口。

点击是用户事件。

文档加载不是。

没有办法解决这个问题。


另外,正如Theo的回答中指出的那样,您立即调用launchFullscreen并尝试使用其返回值(不是函数)作为加载事件处理程序。在这种情况下,它没有任何区别。

答案 1 :(得分:0)

试试这个:

window.onload = function() {
launchFullscreen(document.documentElement);
}

答案 2 :(得分:0)

我通过将其绑定到HTML元素上的click事件来解决“必须是用户操作”的问题。

$('html').click( function() {
  if(!document.fullscreenElement){
    $('html')[0].requestFullscreen();
  }
});

加载后,您只需要记住触摸即可。即使您忘记了,第一次单击也将使页面进入全屏显示。

p.s .:是的,您可以通过使用适当的getElement ...函数轻松地执行此操作而无需使用jQuery。