在IE11中全屏保留

时间:2017-03-03 19:00:10

标签: autodesk-forge autodesk-viewer

使用IE11,如果我从工具栏上的按钮进入全屏模式,然后按F11离开全屏模式,查看器将继续填充浏览器窗口,直到您按下全屏按钮。

我希望实现一个自定义用户界面,它没有全屏保留按钮,所以想要修复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后备条件为真,因为.viewer-fill-browser尚未删除。 '.viewer-fill-browser'然后没有删除,我们似乎仍处于全屏模式。

在Chrome上,它只返回webkitIsFullScreen,这是假的。

是否有针对IE11的解决方法?

3 个答案:

答案 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>

答案 1 :(得分:0)

我猜您可以使用tool for the viewer,而不需要自己修补viewer3D.js来源。

handleKeyDown 处理程序中,检查是否按下 F11 并删除 来自DOM的.viewer-fill-browser 选择器...

this.handleKeyDown = function(event, keyCode) {

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

   return false;
};

希望有所帮助

答案 2 :(得分:0)

仅供参考,此问题已在v2.15中修复。