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

时间:2015-09-06 22:56:04

标签: java javafx-webengine

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

  • 拥有包含<script src="javascript.js"></script>
  • 的HTML文件
  • 将此HTML文件加载到WebView
  • 使用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文件中。

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

1 个答案:

答案 0 :(得分:5)

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

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