首页 > 解决方案 > JavaScript 启动的 IE Window 意外处于 kiosk 模式

问题描述

概括

我正在开发一个包含以下链接标记的内部 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/(内联网),但在部署到我们的生产环境时却没有https://apps.ourproductiondomain.com/mywebapp/(只能从我们的网络访问)。如果我们的组织有特定于站点的设置,我不会感到惊讶ourproductiondomain,但我不知道从哪里开始寻找启动亭模式设置。

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

有趣的是,更改fullscreenheight=600,width=800有一个标题栏并允许用户控制窗口,但有问题的版本没有地址/位置栏,而功能版本有。不是我太在意的细节,但它可能有助于故障排除工作。

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

问题

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

  1. 您如何在 IE 11 中使用 JavaScript 有目的地且始终如一地启动信息亭模式窗口?
  2. 在哪里可以使用特定于站点的设置配置 IE 11,例如“使启动的全屏窗口实际上是信息亭模式窗口”?

标签: javascriptinternet-explorerinternet-explorer-11kiosk-mode

解决方案


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

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

一个可能的解决方法可能是明确指定您希望窗口框架的某些部分可见:

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

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


推荐阅读