在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()