Skip to content

Instantly share code, notes, and snippets.

@gengkev
Created April 4, 2012 15:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gengkev/2302950 to your computer and use it in GitHub Desktop.
Save gengkev/2302950 to your computer and use it in GitHub Desktop.
fullscreen api
function toggleFullScreen(el,override) {
if (override == true) {
el = (el instanceof Element) ? el : document.documentElement;
[ "requestFullscreen",
"requestFullScreen",
"mozRequestFullScreen",
"webkitRequestFullscreen",
"webkitRequestFullScreen",
"webkitEnterFullscreen"].forEach(function(c) {
if (el[c]) {
el[c]();
return true;
}
});
} else if (override == false) {
[ "exitFullscreen",
"cancelFullScreen",
"mozCancelFullScreen",
"webkitCanvelFullscreen",
"webkitCancelFullScreen",
"webkitExitFullscreen"].forEach(function(c) {
if (document[c]) {
document[c]();
return true;
}
});
} else {
if((!window.fullScreen && !document.mozFullScreen && !document.webkitIsFullScreen) ||
(document.fullscreenElement && document.fullscreenElement === null) ||
(document.fullScreenElement && document.fullScreenElement === null)) {
return toggleFullScreen(el,true);
} else {
return toggleFullScreen(el,false);
}
}
return false;
}
/* firing events from multiple places */
function fireEvent(el, evtName) {
if (document.createEventObject) {
var evt = document.createEventObject();
return el.fireEvent("on" + evtName, evt);
} else {
var evt = document.createEvent("Events");
evt.initEvent(evtName, true, true);
return !el.dispatchEvent(evt);
}
}
// doesn't quite work
document.addEventListener("mozfullscreenchange", function(e) {
fireEvent(document,"fullscreenchange");
},false);
document.addEventListener("webkitfullscreenchange", function(e) {
fireEvent(document,"fullscreenchange");
},false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment