Java小程序调用javascript函数返回值
Java Applet calling javascript function with return value
我一直在努力理解这一点。我哪里搞砸了,请帮帮我。
类似于调用这个url:http://www.codejava.net/java-se/applet/call-javascript-function-from-java-applet
我从Java Applet的init和start方法中调用浏览器。
Javascript如下:
function getHHandler() {
console.log("handler requested from applet");
return HHandler.handler();
}
HHandler.instance = null;
function HHandler() {
...
}
HHandler.prototype = {
doStuff : function() {
}
};
HHandler.handler = function() {
if(HHandler.instance == null)
HHandler.instance = new HHandler();
return jsb.instance;
};
这是我在applet中准备调试的方法——没有什么花哨的,至少它应该是:
private Object getHandlerObject() {
Object jo = browser.call("getHHandler", null);
log("call getJSBHandler():" + jo);
return jo;
}
我已经看过了oracle的例子,无数的网站,教程,文档和所有指向相同的调用和eval方法。
当applet调用javascript函数getHHandler时发生的情况是——我可以在浏览器中看到控制台日志,看到操作确实发生了,但是javascript的返回语句从未返回到Java代码中。所以Java剩下了一个空对象,我用不到。我甚至仔细检查了一下,以确保在返回语句之前,js变量不是空的。
我能理解为什么browser.call("HHandler。处理程序",null);会异常并抛出notfunction异常,但在这种情况下,一切似乎都很顺利,但是返回值。<applet id="appletId" archive="../path/to/applet.jar" code=com.package.Main.class width="1" height="1" mayscript></applet>
applet是自签名还是不签名都没有关系。添加了Mayscript——这并没有什么区别。
任何建议/输入?
您使用的是哪个Java版本?最近,* * *改变了applet中的很多东西。所有applet都需要使用官方证书进行签名(自签名是不够的)。还可以查看自1945年以来LiveConnect的变化。
现在a)使用官方证书或
b)如果您使用最新的Java,请尝试旧的,看看它是否有效。如果是这样的话,你知道从哪里开始…
相关文章:
- 根据是否解析了 Promise 从函数返回值
- 从Ajax函数返回值
- 如何从嵌套的API函数返回值
- 从异步函数返回值
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 从节点中的回调函数返回值
- 提交时不采用函数返回值.并且没有按预期行事
- 如何从工厂传递的函数返回值
- 为什么在循环中返回时函数返回值未定义
- 从JavaScript中的嵌套函数返回值
- 存在从函数返回值的问题
- 如何从setinterval函数返回值
- javascript:从匿名函数返回值
- angularjs从html调用函数返回值
- 从命名函数返回值
- 无法从Javascript中的嵌套函数返回值
- 这是显示javascript函数返回值的最佳方式吗
- 使用ajax和回调函数向函数传递值/从函数返回值
- 构造函数中的函数返回值
- 尝试从开关语句 -JS- 中的函数返回值