2017-03-03 62 views
0

使用IE11,如果我從工具欄上的按鈕進入全屏模式,然後按F11離開全屏模式,瀏覽器將繼續填充瀏覽器窗口,直到您按下離開全屏按鈕。在IE11中離開全屏

我期待實現一個自定義用戶界面,它沒有離開全屏按鈕,所以想修復MSFullscreen事件處理程序。

我覺得問題是,當離開全屏模式時,ScreenModeDelegate.prototype.fullscreenEventListener()調用inFullscreen(),它返回true。

if ("webkitIsFullScreen" in document) return document.webkitIsFullScreen; 
return !!(document.mozFullScreenElement || 
    document.msFullscreenElement || 
    document.fullscreenElement || 
    document.querySelector(".viewer-fill-browser")); // Fallback for iPad 

IE11,所以沒有webkitIsFullScreenmsFullscreenElement爲空,但iPad的document.querySelector回退爲true,因爲.viewer-fill-browser尚未刪除。 '.viewer-fill-browser'然後不會被刪除,我們似乎仍然處於全屏模式。

在Chrome上,它僅返回webkitIsFullScreen,這是錯誤的。

IE11有沒有解決方法?

+0

我們現在正在跟蹤此問題。將在即將到來的版本中修復。 –

回答

0

作爲一種變通方法,應該可以修補的默認實現用一個固定的版本(下面的代碼沒有經過測試,它可能包含錯誤)

<script src="path/to/viewer3D.min.js?v=2.12"></script> 
<script type="text/javascript"> 
    Autodesk.Viewing.inFullscreen = function() { 
    if ("fullscreenElement" in document) return document.fullscreenElement; 
    if ("webkitIsFullScreen" in document) return document.webkitIsFullScreen; 
    if ("mozFullScreenElement " in document) return document.mozFullScreenElement; 
    if ("msFullscreenElement" in document) return document.msFullscreenElement; 

    return !!(document.querySelector(".viewer-fill-browser")); // Fallback for iPad 
} 
</script> 
<script type="text/javascript"> 
    // your code 
</script> 
+0

是的。我認爲ipad的後備仍然是壞的,但我沒有一個可以測試的。 –

+0

我不確定它是否仍然需要。我想它定義了'webkitIsFullScreen'甚至'fullscreenElement'。 –

0

我想你可以使用一個tool for the viewer這不需要自己修補viewer3D.js源代碼。

handleKeyDown處理您檢查被壓F11,並從DOM刪除.viewer填充瀏覽器選擇...

this.handleKeyDown = function(event, keyCode) { 

    console.log('-------------------'); 
    console.log('Tool:handleKeyDown(event, keyCode)'); 
    console.log(event); 
    console.log(keyCode); 

    return false; 
}; 

希望這有助於

0

僅供參考,此問題已在v2.15中修復。