Asith
Asith

Reputation: 11

Why window.onload = launchFullscreen(document.documentElement); not work?

I use launchFullscreen() function for get page full screen. It's work perfect with button onClick.But It doesn't work with window.onload. Are there are any way to call that function from 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();
    }
}

Upvotes: 0

Views: 7893

Answers (3)

Nelson
Nelson

Reputation: 2177

I work around the "must be user action" by binding it to a click event on the HTML element.

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

You just need to remember to touch something once it is loaded. Even if you forgot, the first click will put the page to full screen.

p.s.: Yes, you can easily do this without using jQuery by using proper getElement... functions.

Upvotes: 0

Quentin
Quentin

Reputation: 943500

See the specification:

If any of the following conditions are true, queue a task to fire an event named fullscreenerror with its bubbles attribute set to true on the context object's node document, and then terminate these steps

This algorithm is not allowed to show a pop-up.

Full screen mode may only be triggered at times when it is allowed to show a popup.

You may only show a popup in response to a user event.

A click is a user event.

The document loading is not.

There is no way around this.


An an aside, as pointed out in Theo's answer, you are calling launchFullscreen immediately and trying to use its return value (not a function) as the load event handler. In this case, it makes no difference though.

Upvotes: 2

Theo
Theo

Reputation: 150

Try this:

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

Upvotes: 0

Related Questions