Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法再次请求全屏显示_Javascript_Google Chrome_Fullscreen - Fatal编程技术网

Javascript 无法再次请求全屏显示

Javascript 无法再次请求全屏显示,javascript,google-chrome,fullscreen,Javascript,Google Chrome,Fullscreen,我有个问题。全屏请求在Firefox中运行良好,但在Chrome中,当我请求并取消全屏时,我不能再次请求它(F11工作)。此外,当我重新加载页面时,它会取消全屏显示 jQuery('.fullScreen').click(function(){ var docElm = document.documentElement; if (docElm.requestFullscreen) { docElm.requestFullscreen(); } else

我有个问题。全屏请求在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键时,它会最小化,但我无法使用我的按钮返回全屏。

好的,有几个想法

首先,当你按下退出按钮时,它不工作的原因。很简单,因为jquery没有被执行。要解决刷新问题,您可以放置一个cookie,说明浏览器是否处于全屏状态,如果处于全屏状态,您可以在page ready事件中将其设置为全屏状态。我想为你提出一个新的想法

下面是一个完全复制粘贴的全屏api演示

我想强调一个片段

    fsElement.addEventListener(fullScreenApi.fullScreenEventName, function() {
    if (fullScreenApi.isFullScreen()) {
        fsStatus.innerHTML = 'Whoa, you went fullscreen';
    } else {
        fsStatus.innerHTML = 'Back to normal';
    }
}, true);
您可以在此事件中添加代码,以便在用户离开全屏模式时进行处理。然后运行你的最小化方法

            <!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会在document对象上触发该事件。

它在my Chrome(v 20)中正常工作。你能得到更多关于浏览器版本和你的工具如何最小化的信息吗(如果你不在F11前退出的话)?我在第一篇文章中添加了这个功能。我使用的是Chrome v22.0.1229.94 m。规格已更改
webkitExitFullscreen
现在是
webkitExitFullscreen
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'});
}