如何从Java applet线程调用JavaScript回调?
作者:互联网
我在Java小程序启动的线程中运行了一些长时间运行的Java代码.代码完成后,便会为用户提供信息.我想以线程安全的方式将此信息传递给JavaScript回调.仅使用Java DOM API修改HTML文档是不够的,除非以线程安全的方式(即最终在执行JavaScript回调的浏览器线程中)将我的JavaScript回调作为副作用来调用.我该如何实施?已经有图书馆在做吗?
解决方法:
看起来您需要的是Common DOM API.本质上,您可以请求DOMService在状态良好并准备就绪时在主UI线程上进行回调.
http://docs.oracle.com/javase/1.5.0/docs/guide/plugin/developer_guide/java_js.html
据我了解,JSObject是“旧方法”,而Common DOM API是较新的方法(从Java 6开始).您需要做的是调用applet的方法,并传递您想要回调的函数对象.然后,您的applet从DOMAction中调用该函数对象.
我手头没有代码可以显示给您,这不是我在使用Java之前所做的事情.但是,我使用了用C编写的NPAPI Web插件中的类似技术,即让JS调用我的C对象并传递一个函数作为参数,然后在稍后阶段让C对象调用JS函数.希望这会有所帮助.
标签:dom,thread-safety,callback,javascript,java 来源: https://codeday.me/bug/20191209/2096949.html