在Java 8u60中在WebView中加载本地JavaScript文件

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

  • 有一个包含的HTML文件
  • 将此HTML文件加载到WebView中
  • 使用webView.getEngine().executeScript() javascript.js包含的函数webView.getEngine().executeScript()

切换到8u60后,它不再有效:

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

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

知道改变了什么以及如何解决这个问题?

从Java 8u60开始,html文件中引用的本地javascript文件不再在WebView中执行。 使用旧版本运行程序时,它仍然有效。 我没有发现Oracle的这种行为改变的信息。

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