Autodesk forge 单击';全屏';Forge查看器中的按钮

Autodesk forge 单击';全屏';Forge查看器中的按钮,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我在Angular 9应用程序中嵌入了一个Forge查看器。除了一个标准的全屏按钮外,一切似乎都正常工作。单击会抛出一个未捕获的JavaScript错误,可以在浏览器的开发控制台中看到: Uncaught (in promise) TypeError: fullscreen error at u (compat.js:87) at h.doScreenModeChange (ScreenModeDelegate.js:231) at h.u.setMode (Screen

我在Angular 9应用程序中嵌入了一个Forge查看器。除了一个标准的全屏按钮外,一切似乎都正常工作。单击会抛出一个未捕获的JavaScript错误,可以在浏览器的开发控制台中看到:

Uncaught (in promise) TypeError: fullscreen error
    at u (compat.js:87)
    at h.doScreenModeChange (ScreenModeDelegate.js:231)
    at h.u.setMode (ScreenModeDelegate.js:83)
    at T.setScreenMode (ScreenModeDelegate.js:337)
    at T.nextScreenMode (ScreenModeDelegate.js:354)
    at s.n.onClick (GuiViewer3D.js:737)
    at HTMLDivElement.<anonymous> (Button.js:33)
Uncaught(承诺中)类型错误:全屏错误
在u(compat.js:87)
在h.doScreenModeChange(ScreenModeDelegate.js:231)
在h.u.setMode(ScreenModeDelegate.js:83)
在T.setScreenMode(ScreenModeDelegate.js:337)
在T.nextScreenMode(ScreenModeDelegate.js:354)
在s.n.onClick(GuiViewer3D.js:737)
在HTMLDEVELENT。(Button.js:33)
我仔细阅读了调用堆栈中引用的代码,得出结论,错误很可能发生在对浏览器全屏API的调用期间,并中断了切换到全屏模式的正确顺序。查看器容器的样式设置已成功应用,但未进入浏览器全屏。此外,退出处理程序未连接,因此从全屏退出也不起作用


我在任何Autodesk Forge示例中都没有看到过这样的问题,因此我假设错误是由我的应用程序中的其他内容触发的。从控制台日志中可以看出,错误显然发生在查看器代码中。

经过进一步调查,我发现了问题。
compat.js
中的
requestFullscreen()
抛出错误,因为属性
document.fullscreenabled
设置为
false
,代码在调用
requestFullscreen
之前没有检查它

文档.fullscreenEnabled
为false,因为在服务器的
功能策略
标题中接收到意外值。显然,Chrome浏览器响应错误的标题值将
document.fullscreenabled
设置为false,而Firefox将其设置为true