<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事件处理程序中取消注释警报,它实际上会取消。
我很难理解为什么会这样。另外,如果不使用警报,我将如何实现我的目标呢?
感谢。
更新
我已尝试过所有评论,但似乎没有用。任何有关这方面的帮助将不胜感激!
答案 0 :(得分:0)
这样的问题,其中alert()修复问题始终是事件序列的问题。几乎总是有效的解决方案是将违规代码置于短时间函数中:
window.setTimeout(cancelFull,10);
function cancelFull() { document.webkitCancelFullScreen(); }
<强>更新强> 将setTimeout()替换为侦听器内的当前CancelFullScreen。
答案 1 :(得分:0)
试试这个:
window.setTimeout(document.webkitCancelFullScreen, 10);