2012-10-22 3 views
5

문제가 있습니다. 전체 화면 요청은 Firefox에서 잘 작동하지만 Chrome에서 전체 화면을 요청하거나 취소 할 때 다시 요청할 수 없습니다 (F11 작동). 또한 페이지를 새로 고침하면 전체 화면이 취소됩니다.전체 화면을 다시 요청할 수 없습니다. 크롬

jQuery('.fullScreen').click(function(){ 
    var docElm = document.documentElement; 

    if (docElm.requestFullscreen) { 
     docElm.requestFullscreen(); 
    } 

    else if (docElm.mozRequestFullScreen) { 
     docElm.mozRequestFullScreen();   
    } 

    else if (docElm.webkitRequestFullScreen) { 
     docElm.webkitRequestFullScreen(); 
} 
     jQuery('.fullScreen').css({'display' : 'none'}); 
     jQuery('.minimize').css({'display' : 'block'}); 
    }); 

최소화 :

jQuery('.minimize').click(function(){    

          if (document.exitFullscreen) { 
          document.exitFullscreen(); 
          } 

          else if (document.mozCancelFullScreen) { 
           document.mozCancelFullScreen(); 
          } 

          else if (document.webkitCancelFullScreen) { 
           document.webkitCancelFullScreen(); 
          }    

         jQuery('.fullScreen').css({'display' : 'block'}); 
         jQuery('.minimize').css({'display' : 'none'}); 
       }); 

I 전체 화면에서 ESC 키를 누르면 또한, 그것은 최소화,하지만하지 다시 전체 화면 내 버튼을 사용 할 수 있습니다.

+1

내 Chrome에서 제대로 작동합니다 (20 개). 브라우저 버전 및 구현 방법 최소화에 대한 자세한 정보를 얻을 수 있습니까 (F11을 사용하여 종료하지 않은 경우)? –

+0

첫 번째 게시물에이 기능을 추가했습니다. Chrome v22.0.1229.94 m을 사용하고 있습니다. – Ziggy

답변

1

좋습니다. 몇 가지 아이디어가 있습니다.

첫 번째로 이스케이프 버튼을 눌렀을 때 효과가없는 이유입니다. 귀하의 jquery가 실행되지 않기 때문에 매우 간단합니다. 새로 고침 문제를 해결하기 위해 브라우저에 전체 화면으로 표시되는 날씨를 나타내는 쿠키를 배치 할 수 있으며 페이지 준비 이벤트에서 전체 화면으로 만들 수 있습니다.

내가이 코드를 추가 할 수 있습니다 조각을

fsElement.addEventListener(fullScreenApi.fullScreenEventName, function() { 
    if (fullScreenApi.isFullScreen()) { 
     fsStatus.innerHTML = 'Whoa, you went fullscreen'; 
    } else { 
     fsStatus.innerHTML = 'Back to normal'; 
    } 
}, true); 

을 강조하고 싶습니다 나는 아래

이 완전히 전체 화면 API의 pasteable 데모를 복사됩니다 당신을 위해 새로운 아이디어를 제안하고 싶습니다 사용자가 전체 화면 모드를 종료 할 때 처리 할 이벤트입니다. 내가 당신의 JQuery와

jQuery('.fullScreen').click(function(){ 
    maximize(); 
}); 

jQuery('.minimize').click(function(){    
    minimize(); 
}); 





function maximize(){ 
    var docElm = document.documentElement; 

    if (docElm.requestFullscreen) { 
    docElm.requestFullscreen(); 
    } 

    else if (docElm.mozRequestFullScreen) { 
    docElm.mozRequestFullScreen();   
    } 

    else if (docElm.webkitRequestFullScreen) { 
    docElm.webkitRequestFullScreen(); 
    } 
    jQuery('.fullScreen').css({'display' : 'none'}); 
    jQuery('.minimize').css({'display' : 'block'}); 
} 

function minimize(){ 
    if (document.exitFullscreen) { 
    document.exitFullscreen(); 
    } 

    else if (document.mozCancelFullScreen) { 
    document.mozCancelFullScreen(); 
    } 

    else if (document.webkitCancelFullScreen) { 
    document.webkitCancelFullScreen(); 
    }    

    jQuery('.fullScreen').css({'display' : 'block'}); 
    jQuery('.minimize').css({'display' : 'none'}); 
} 

importent 노트의 업데이트 된 버전이 아래에 그냥 methhod 최소화

  <!DOCTYPE html> 
      <html> 
      <head> 
      <title>FullScreen API</title> 

      <style> 
      body { 
       background: #F3F5FA; 
      } 
      #container { 
       width: 600px; 
       padding: 30px; 
       background: #F8F8F8; 
       border: solid 1px #ccc; 
       color: #111; 
       margin: 20px auto; 
       border-radius: 3px; 
      } 

      #specialstuff { 
       background: #33e; 
       padding: 20px; 
       margin: 20px; 
       color: #fff; 
      } 
      #specialstuff a { 
       color: #eee; 
      } 

      #fsstatus { 
       background: #e33; 
       color: #111; 
      } 

      #fsstatus.fullScreenSupported { 
       background: #3e3; 
      } 
      </style> 
      </head> 
      <body> 
      <div id="container"> 
       <div id="specialstuff"> 
        <p>Inside here is special stuff which will go fullscreen</p> 
        <p>As of 10/20/2011, you'll need Safari 5.1, <a href="http://tools.google.com/dlpage/chromesxs">Chrome Canary</a>, or <a href="http://nightly.mozilla.org/">Firefox Nightly</a> 
        <p>Status: <span id="fsstatus"></span> 
       </div> 

       <input type="button" value="Go Fullscreen" id="fsbutton" /> 
       <p> 
       </p> 
      </div> 


      <script> 

      (function() { 
      var 
       fullScreenApi = { 
        supportsFullScreen: false, 
        isFullScreen: function() { return false; }, 
        requestFullScreen: function() {}, 
        cancelFullScreen: function() {}, 
        fullScreenEventName: '', 
        prefix: '' 
       }, 
       browserPrefixes = 'webkit moz o ms khtml'.split(' '); 

      // check for native support 
      if (typeof document.cancelFullScreen != 'undefined') { 
       fullScreenApi.supportsFullScreen = true; 
      } else {  
       // check for fullscreen support by vendor prefix 
       for (var i = 0, il = browserPrefixes.length; i < il; i++) { 
        fullScreenApi.prefix = browserPrefixes[i]; 

        if (typeof document[fullScreenApi.prefix + 'CancelFullScreen' ] != 'undefined') { 
         fullScreenApi.supportsFullScreen = true; 

         break; 
        } 
       } 
      } 

      // update methods to do something useful 
      if (fullScreenApi.supportsFullScreen) { 
       fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange'; 

       fullScreenApi.isFullScreen = function() { 
        switch (this.prefix) { 
         case '': 
          return document.fullScreen; 
         case 'webkit': 
          return document.webkitIsFullScreen; 
         default: 
          return document[this.prefix + 'FullScreen']; 
        } 
       } 
       fullScreenApi.requestFullScreen = function(el) { 
        return (this.prefix === '') ? el.requestFullScreen() : el[this.prefix + 'RequestFullScreen'](); 
       } 
       fullScreenApi.cancelFullScreen = function(el) { 
        return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + 'CancelFullScreen'](); 
       }  
      } 

      // jQuery plugin 
      if (typeof jQuery != 'undefined') { 
       jQuery.fn.requestFullScreen = function() { 

        return this.each(function() { 
         var el = jQuery(this); 
         if (fullScreenApi.supportsFullScreen) { 
          fullScreenApi.requestFullScreen(el); 
         } 
        }); 
       }; 
      } 

      // export api 
      window.fullScreenApi = fullScreenApi; 
      })(); 

      </script> 

      <script> 

      // do something interesting with fullscreen support 
      var fsButton = document.getElementById('fsbutton'), 
      fsElement = document.getElementById('specialstuff'), 
      fsStatus = document.getElementById('fsstatus'); 


      if (window.fullScreenApi.supportsFullScreen) { 
      fsStatus.innerHTML = 'YES: Your browser supports FullScreen'; 
      fsStatus.className = 'fullScreenSupported'; 

      // handle button click 
      fsButton.addEventListener('click', function() { 
       window.fullScreenApi.requestFullScreen(fsElement); 
      }, true); 

      fsElement.addEventListener(fullScreenApi.fullScreenEventName, function() { 
       if (fullScreenApi.isFullScreen()) { 
        fsStatus.innerHTML = 'Whoa, you went fullscreen'; 
       } else { 
        fsStatus.innerHTML = 'Back to normal'; 
       } 
      }, true); 

      } else { 
      fsStatus.innerHTML = 'SORRY: Your browser does not support FullScreen'; 
      } 

      </script> 

      </body> 
      </html> 

을 실행하여

FullScreenChanged 이벤트 - W3C의 및 웹킷 화재 요소에 fullscreenchanged 이벤트 전체 화면으로 돌아가지만 Mozilla는 문서 객체에 이벤트를 발생시킵니다.

+1

사양이 변경되었습니다. 'webkitCancelFullScreen'은 이제'webkitExitFullscreen'입니다. http://generatedcontent.org/post/70347573294/is-your-fullscreen-api-code-up-to-date-find-out-how-to –

관련 문제