5

在 Java 8u51 之前,以下工作正常:

  • 有一个 HTML 文件包含<script src="javascript.js"></script>
  • 将此 HTML 文件加载到 WebView
  • 调用包含在javascript.jsusing中的函数webView.getEngine().executeScript()

但是,切换到 8u60 后,它不再起作用:

Exception in thread "JavaFX Application Thread" netscape.javascript.JSException: TypeError: undefined is not a function

所以文件javascript.js不再加载。在从 IDE 启动时工作,其中 JavaScript 文件仅位于文件系统上。但是,当应用程序被打包并因此位于 JAR 文件中时,它不再起作用。javascript.js

知道发生了什么变化以及如何解决这个问题吗?

4

1 回答 1

6

从 Java 8u60 开始,在 html 文件中引用的本地 javascript 文件不再在 WebView 中执行。使用旧版本运行程序时,它仍然可以工作。我没有发现任何信息表明这种行为变化是 Oracle 有意的。

作为一种解决方法,您可以将 javascript 代码直接放入 HTML 文件中,或者在 java 中将 javascript 文件的内容加载到 String 中并执行它webView.getEngine().executeScript()

于 2015-09-20T14:02:02.717 回答