2014-05-07 43 views
1

我想在全屏api啓動後得到$(window).height()。所有其他支持的瀏覽器工作得很好,但Chrome瀏覽器窗口高度錯誤(有時)。它就像缺少窗口大小已經改變的事實。我的代碼如下:Javascript全屏api和窗口高度

function launchFullscreen(element) { 
    if(element.requestFullscreen) { 
    element.requestFullscreen(); 
    } else if(element.mozRequestFullScreen) { 
    element.mozRequestFullScreen(); 
    } else if(element.webkitRequestFullscreen) { 
    element.webkitRequestFullscreen(); 
    } else if(element.msRequestFullscreen) { 
    element.msRequestFullscreen(); 
    } 
} 

launchFullscreen(element); 
var windowHeight = $(window).height(); 

任何想法我錯過了什麼?

+0

請問'launchFullscreen'功能異步運行,所以啓用全屏之前被計算的高度? – Scimonster

+0

我知道你是對的。但webkitRequestFullscreen沒有回調函數。那我該如何解決呢? – nznoor

回答

1

我發現我在這裏失蹤了。全屏API有一個改變事件。

document.addEventListener("fullscreenchange", function() { 
    //do something 
}, false); 

document.addEventListener("mozfullscreenchange", function() { 
    //do something 
}, false); 

document.addEventListener("webkitfullscreenchange", function() { 
    //do something 
}, false); 

document.addEventListener("msfullscreenchange", function() { 
    //do something 
}, false); 
+0

可能很有趣:http://stackoverflow.com/questions/9454125/javascript-request-fullscreen-is-unreliable – GameAlchemist

+0

謝謝你張貼這個。 –

+0

它不會幫助我在chrome中,即使在onchange監聽器中它也會產生錯誤的高度 – Oleg

0

在Chrome中:

document.addEventListener("fullscreenchange", function() { 
    setTimeout(function() { 
     //do something 
    }, 50); 
}, false); 

document.addEventListener("webkitfullscreenchange", function() { 
    setTimeout(function() { 
     //do something 
    }, 50); 
}, false);