2012-10-22 14 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'}); 
       }); 

私はフルスクリーンでEscキーを押すと、また、それは最小限に、私は戻って、フルスクリーンに私のボタンを使用してすることはできません。

+1

私のChromeでは正常に動作しています(v 20)。ブラウザのバージョンや実装方法をもっと詳しく知ることができますか(F11で終了しない場合) –

+0

私はこの機能を最初の投稿に追加しました。私はChrome v22.0.1229.94 mを使用しています。 – Ziggy

答えて

1

大丈夫です。

第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'}); 
} 

にとって必須のノートの更新バージョンを持っているの下に、ちょうど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およびWebkitの火の要素にfullscreenchangedイベント全画面表示になりますが、Mozillaはドキュメントオブジェクト上でイベントを発生させます。

+1

仕様が変更されました。 'webkitCancelFullScreen'は' webkitExitFullscreen'になりました。 http://generatedcontent.org/post/70347573294/is-your-fullscreen-api-code-up-to-date-find-out-how-to –

関連する問題