在 IE11 中离开全屏
Leaving fullscreen in IE11
使用 IE11,如果我从工具栏上的按钮进入全屏模式,然后按 F11 离开全屏模式,查看器会继续填充浏览器 window,直到您按下离开全屏按钮。
我想实现自定义 UI,它没有离开全屏按钮,所以想修复 MSFullscreen
事件处理程序。
我认为问题在于,当离开全屏模式时,ScreenModeDelegate.prototype.fullscreenEventListener()
调用 inFullscreen()
,returns 为真。
if ("webkitIsFullScreen" in document) return document.webkitIsFullScreen;
return !!(document.mozFullScreenElement ||
document.msFullscreenElement ||
document.fullscreenElement ||
document.querySelector(".viewer-fill-browser")); // Fallback for iPad
IE11,所以没有 webkitIsFullScreen
。 msFullscreenElement
为空,但 iPad 的 document.querySelector
回退为真,因为 .viewer-fill-browser
尚未删除。 '.viewer-fill-browser' 然后没有被删除,我们似乎仍然处于全屏模式。
在 Chrome 上只是 returns webkitIsFullScreen
,这是错误的。
是否有针对 IE11 的解决方法?
作为解决方法,应该可以使用固定版本修补默认实现(以下代码未经测试,可能包含错误)
<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>
我想您可以使用 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;
};
希望对您有所帮助
仅供参考,此问题已在 v2.15 中修复。
使用 IE11,如果我从工具栏上的按钮进入全屏模式,然后按 F11 离开全屏模式,查看器会继续填充浏览器 window,直到您按下离开全屏按钮。
我想实现自定义 UI,它没有离开全屏按钮,所以想修复 MSFullscreen
事件处理程序。
我认为问题在于,当离开全屏模式时,ScreenModeDelegate.prototype.fullscreenEventListener()
调用 inFullscreen()
,returns 为真。
if ("webkitIsFullScreen" in document) return document.webkitIsFullScreen;
return !!(document.mozFullScreenElement ||
document.msFullscreenElement ||
document.fullscreenElement ||
document.querySelector(".viewer-fill-browser")); // Fallback for iPad
IE11,所以没有 webkitIsFullScreen
。 msFullscreenElement
为空,但 iPad 的 document.querySelector
回退为真,因为 .viewer-fill-browser
尚未删除。 '.viewer-fill-browser' 然后没有被删除,我们似乎仍然处于全屏模式。
在 Chrome 上只是 returns webkitIsFullScreen
,这是错误的。
是否有针对 IE11 的解决方法?
作为解决方法,应该可以使用固定版本修补默认实现(以下代码未经测试,可能包含错误)
<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>
我想您可以使用 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;
};
希望对您有所帮助
仅供参考,此问题已在 v2.15 中修复。