jquery.fullscreen.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // jQuery.FullScreen plugin
  2. // Triple-licensed: Public Domain, MIT and WTFPL license - share and enjoy!
  3. (function($) {
  4. function isFullScreen() {
  5. return document[!prefix ? 'fullScreen' :
  6. 'webkit' === prefix ? 'webkitIsFullScreen' :
  7. prefix + 'FullScreen'];
  8. }
  9. function cancelFullScreen() {
  10. return document[prefix ? prefix + 'CancelFullScreen'
  11. : 'cancelFullScreen']();
  12. }
  13. var supported = typeof document.cancelFullScreen !== 'undefined'
  14. , prefixes = ['webkit', 'moz', 'o', 'ms', 'khtml']
  15. , prefix = ''
  16. , noop = function() {}
  17. , i
  18. ;
  19. if (!supported) {
  20. for (i = 0; prefix = prefixes[i]; i++) {
  21. if (typeof document[prefix + 'CancelFullScreen'] !== 'undefined') {
  22. supported = true;
  23. break;
  24. }
  25. }
  26. }
  27. if (supported) {
  28. $.fn.requestFullScreen = function() {
  29. return this.each(function() {
  30. return this[prefix ? prefix + 'RequestFullScreen'
  31. : 'requestFullScreen']();
  32. });
  33. };
  34. $.fn.fullScreenChange = function(fn) {
  35. var ar = [prefix + 'fullscreenchange'].concat([].slice.call(arguments, 0))
  36. , $e = $(this);
  37. return $e.bind.apply($e, ar);
  38. };
  39. $.FullScreen =
  40. { isFullScreen: isFullScreen
  41. , cancelFullScreen: cancelFullScreen
  42. , prefix: prefix
  43. , supported: supported
  44. };
  45. }
  46. else {
  47. $.fn.requestFullScreen = $.fn.fullScreenChange = noop;
  48. $.FullScreen =
  49. { isFullScreen: function() { return false; }
  50. , cancelFullScreen: noop
  51. , prefix: prefix
  52. , supported: supported
  53. };
  54. }
  55. })(jQuery);