javascript - 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>
这样做的目的是打开一个新的全屏窗口,然后用户可以调整它的大小/关闭/移动等。但是,在某些情况下,链接实际上会打开一个似乎是信息亭模式的窗口(没有标题栏F11,Esc无法退出)。需要明确的是,此链接所在的页面是普通用户启动的 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
)。
有趣的是,更改fullscreen
为height=600,width=800
有一个标题栏并允许用户控制窗口,但有问题的版本没有地址/位置栏,而功能版本有。不是我太在意的细节,但它可能有助于故障排除工作。
该应用程序是在 ASP.NET MVC 5 中开发的,但我认为这并不重要,因为上面呈现的标记在两种部署中完全相同。
问题
有人知道会发生什么吗?如果这是一个太宽泛的问题,我认为这里有两个狭窄的问题可能会为我指明正确的方向:
- 您如何在 IE 11 中使用 JavaScript 有目的地且始终如一地启动信息亭模式窗口?
- 在哪里可以使用特定于站点的设置配置 IE 11,例如“使启动的全屏窗口实际上是信息亭模式窗口”?
解决方案
这听起来像是 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 中的错误被触发的原因。
推荐阅读
- entity-framework - 如何使用 LINQ/LAMBDA 更改表属性的值?
- gnu-make - Make:解析命令列表的尾部,就好像它们是 args 而不是附加规则?
- html - 了解不同字体大小的 CSS 换行
- sql-server - 这个 SQL 函数有什么作用?
- reactjs - 为什么 onClick 在某些情况下在 React 中不起作用?
- powershell - 使用凭据在多个服务器上更改注册表中的值
- administration - MinIO 更改用户凭据(密钥)
- javascript - TypeError:无法设置未定义的属性“调度程序”
- iot - W3C 事物描述表单是否需要操作键?
- ios - 在 viewDidLoad 内部哪里是使用 self.table.ReloadData() 的最佳位置?