JavaScript / HTML5 FullScreen API

时间:2011-11-30 14:24:01

标签: javascript jquery html5 google-chrome

<div id="divbody">
    <button id="begin">Click me</button>

    <script>
        $(document).ready(function() {
            $("#begin").click(function() {
                var e = document.getElementById('divbody');
                e.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
            });
            document.addEventListener("webkitfullscreenchange",function(){
                if (document.webkitIsFullScreen) {
                    //alert('a');
                    document.webkitCancelFullScreen();
                }
            }, false);
        });
    </script>
</div>

以下代码基本上应该在进入后立即取消全屏。但是,上面的代码不起作用(例如,它进入全屏但不取消)。但是,通过在webkitfullscreenchange事件处理程序中取消注释警报,它实际上会取消。

我很难理解为什么会这样。另外,如果不使用警报,我将如何实现我的目标呢?

感谢。

更新

我已尝试过所有评论,但似乎没有用。任何有关这方面的帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

这样的问题,其中alert()修复问题始终是事​​件序列的问题。几乎总是有效的解决方案是将违规代码置于短时间函数中:

window.setTimeout(cancelFull,10);
function cancelFull() { document.webkitCancelFullScreen(); }

<强>更新 将setTimeout()替换为侦听器内的当前CancelFullScreen。

答案 1 :(得分:0)

试试这个:

window.setTimeout(document.webkitCancelFullScreen, 10);