在 IE11 中离开全屏

Posted

技术标签:

【中文标题】在 IE11 中离开全屏【英文标题】:Leaving fullscreen in IE11 【发布时间】:2017-07-24 00:21:20 【问题描述】:

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

我希望实现一个自定义 UI,它没有离开全屏按钮,因此想要修复 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 有解决方法吗?

【问题讨论】:

我们现在正在跟踪这个问题。将在未来的版本中修复。 【参考方案1】:

作为一种解决方法,应该可以使用固定版本修补默认实现(下面的代码未经测试,它可能包含错误)

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

【讨论】:

是的。我认为 ipad 后备仍然坏了,但我没有一个可以测试。 我不确定它是否仍然需要。我猜它定义了webkitIsFullScreen 甚至fullscreenElement【参考方案2】:

我猜你可以使用 tool for the viewer,它不需要自己修补 viewer3D.js 源代码。

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

this.handleKeyDown = function(event, keyCode) 

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

   return false;
;

希望有帮助

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于在 IE11 中离开全屏的主要内容,如果未能解决你的问题,请参考以下文章

javascript 浏览器全屏全屏

ZFPlayer iOS16 系统横屏全屏问题处理

ZFPlayer iOS16 系统横屏全屏问题处理

h5 video切换到横屏全屏

跳出小程序 video组件 卡顿黑屏全屏等坑

网页全屏以及禁用F11默认行为-vue项目