【问题标题】:JavaFx web not working with Internet Explorer 11 with JRE7JavaFx web 无法与带有 JRE7 的 Internet Explorer 11 一起使用
【发布时间】:2014-01-15 11:23:10
【问题描述】:

我注意到我无法在 web IE 11 上启动 .. 我知道 IE11 的用户代理是 Trident 而不是 MSIE。所以我想这就是为什么我总是收到安装 java 的通知的原因,即使它已经安装了.. 但是我找不到临时解决方案,因为人们通过更新 deployJava.js 的 webstart 并添加“三叉戟”和“msie”来解决这个问题...

请注意,只有 Windows 7 可以安装 IE11 或其与 Windows 8.1 捆绑在一起。您不能在 Windows 8 上安装 IE11 或将其更新为 IE11。

我的问题是:

1- JavaFX 应用程序在哪里检测浏览器代理?

2- 是否可以修改负责该操作的包并将 jar 包含到项目中?

欢迎任何想法..

【问题讨论】:

    标签: javafx internet-explorer-11


    【解决方案1】:

    Internet Explorer 11 不是supported configuration for JavaFX in JRE 7

    您可以通过filing a feature request in the JavaFX issue tracker 请求对 Internet Explorer 11 的支持。您可以在功能请求中链接回此问题。

    我猜你在问题中所说的是,与早期的浏览器版本相比,微软在UserAgent string for IE11 has changed from previous versions 中放置的信息和understand the UserAgent string encoded information 的方式在 IE11 中发生了变化。这些更改意味着当前的 JavaFX 部署代码无法正确检测到它是否在 IE11 环境中运行并执行适当的操作以使 JavaFX 应用程序能够在 IE11 中执行。

    我相信 JavaFX 打包代码使用dtjava.js 脚本来检测目标浏览器。对于 JavaFX 8,这个检测例程是(我相信)JavaScript detectEnv() 方法。要获得 IE11 兼容性,您可能需要做的是托管自己的部署脚本,并将本地部署脚本中的 dtjava.js 替换为您创建的与 IE 11 兼容的修改版本(有关如何执行此操作的详细说明不在这个答案的范围)。即使您确实获得了 dtjava.js 脚本来正确识别和执行 IE 11 的逻辑,在 IE 11 中运行 JavaFX 可能仍然存在其他问题(由于它当前不是受支持的部署平台)。

    【讨论】:

      【解决方案2】:

      我在 dtjava.js 中做了一些修改,让它在 IE11 中工作

      在我的例子中,我使用 dtjava.js 只是为了嵌入一个不基于 JavaFX 的小程序,所以这些修改可能不足以让 JavaFX 应用程序运行。

      我从

      更改了IE检测规则
      ie = isDef(window.execScript);
      

      ie = /trident/.test(u);
      

      detectEnv()

      if (isDef(d.addEventListener)) {
          d.addEventListener("DOMContentLoaded",
          invokeCallbacks, false);
      }
      if (ua.ie && ua.win) {
      

      if (isDef(d.addEventListener)) {
          d.addEventListener("DOMContentLoaded",
          invokeCallbacks, false);
      }
      else if (isDef(d.attachEvent)) {
      

      init() 函数中。

      当然,这些都是未经测试的 hacky 更改(仅限 Explorer 10、11 和最新的 FIrefox 和 Chrome)。风险自负...

      【讨论】:

      • 正如您所说,它适用于小程序而不是 JavaFX ..但感谢您与我们分享您的解决方案...
      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多