diff --git a/platypush/backend/http/static/js/utils.js b/platypush/backend/http/static/js/utils.js index be42f6a2..c3465ed9 100644 --- a/platypush/backend/http/static/js/utils.js +++ b/platypush/backend/http/static/js/utils.js @@ -1,9 +1,34 @@ function enterFullScreen() { - return document.getElementsByTagName('body')[0].requestFullscreen(); + const body = document.getElementsByTagName('body')[0]; + if (body.requestFullscreen()) { + return body.requestFullscreen(); + } else if (body.msRequestFullscreen()) { + return body.msRequestFullscreen(); + } else if (body.mozRequestFullScreen()) { + return body.mozRequestFullScreen(); + } else if (body.webkitRequestFullscreen()) { + return body.webkitRequestFullscreen(); + } else { + console.warn('This browser does not support fullscreen mode'); + } + + // The day will come when browser developers will have to pay web developers + // back for all the time wasted to write such crappy portable code. A two-lines + // function becomes a 10-lines function just because they can't talk to + // one another before implementing sh*t. } function exitFullScreen() { - const self = this; - return document.exitFullscreen(); + if (document.exitFullscreen()) { + return document.exitFullscreen(); + } else if (document.msExitFullscreen()) { + return document.msExitFullscreen(); + } else if (document.mozCancelFullScreen()) { + return document.mozCancelFullScreen(); + } else if (document.webkitExitFullscreen()) { + return document.webkitExitFullscreen(); + } else { + console.warn('This browser does not support fullscreen mode'); + } }