JavaScript 启动的 IE 窗口意外处于展台模式



摘要

我正在开发一个包含以下链接标记的内部 Web 应用程序:

<a onclick="window.open('/path/to/my/new/page', 'windowname', 'fullscreen,resizable').focus(); return false;" href="/path/to/my/new/page">
Click here to open a fullscreen window.
</a>

目的是打开一个新的全屏窗口,然后用户可以调整大小/关闭/移动等。但是,在某些情况下,链接实际上会打开一个看起来像是展台模式窗口的内容(没有标题栏、F11Esc无法退出)。需要明确的是,此链接所在的页面是普通用户启动的IE 11,Windows 7。我们在Chrome 73,Windows 7或Edge,Windows 10中没有遇到此问题。

其他详细信息

当部署到开发环境(其 URL 类似于https://mydevenv.local/mywebapp/(Intranet))时,此启动链接将按预期工作,但在部署到我们的生产环境https://apps.ourproductiondomain.com/mywebapp/(只能从我们的网络访问)时则不然。如果我们的组织有特定于站点的ourproductiondomain设置,我不会感到惊讶,但我不知道从哪里开始寻找在展台启动模式设置。

使用 IE 开发工具,我编辑了链接和位置,并确定当链接从ourproductiondomainourproductiondomain时,它似乎专门以展台模式启动。编辑指向https://google.com的链接会按预期以常规全屏模式启动 Google。在 Google 中编辑我的标记也会按预期以常规全屏模式打开我的新页面(链接完全限定为https://apps.ourproductiondomain.com/mywebapp/path/to/my/new/page)。

有趣的是,将fullscreen更改为height=600,width=800有一个标题栏,允许用户控制窗口,但错误版本没有地址/位置栏,而功能版本有。这不是我太关心的细节,但它可能有助于故障排除工作。

该应用程序是在 MVC 5 ASP.NET 开发的,但我认为这并不重要,因为上面的渲染标记在两个部署中完全相同。

问题

有谁知道可能会发生什么?如果这是一个太宽泛的问题,这里有两个我认为可以指出我正确方向的狭义问题:

  1. 你如何有目的地和一致地在IE 11中使用JavaScript启动展台模式窗口?
  2. 在哪里可以使用特定于站点的设置(例如"使启动的全屏窗口实际上是展台模式窗口")配置 IE 11?

这听起来像是IE中的一个错误。出于安全目的,不应允许用户脚本在展台模式下打开窗口。

听起来这里确实有一些自定义系统设置在起作用,尽管我不知道在哪里可以找到该设置。

可能的解决方法可能是显式指定您希望窗口框架的某些部分可见:

window.open('/path/to/my/new/page', 'windowname', 'fullscreen,toolbar=yes,location=no,statusbar=yes,menubar=yes,scrollbars=yes,resizable=yes')

另外,我看到您的原始脚本直接在新创建的窗口中使用.focus()。我认为您不需要它,并且觉得这可能是实际导致触发IE错误的原因。

最新更新