在Java 8u51之前,以下工作正常:
<script src="javascript.js"></script>
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文件中。
知道发生了什么变化以及如何解决这个问题?
答案 0 :(得分:5)
从Java 8u60开始,html文件中引用的本地javascript文件不再在WebView中执行。使用旧版本运行程序时,它仍然有效。 我没有发现任何信息表明这种行为改变是Oracle的意图。
作为一种解决方法,您可以将javascript代码直接放入HTML文件中,或者将javascript文件的内容加载到String中并使用webView.getEngine().executeScript()
执行它