Using LiveConnect getMember(String) method of a window JSObject, a Java object of type "Object" is returned, but I don't find the expected members defined on it. Neither can I cast it to a JSObject to continue using the getMember().
Accessing DOM nodes and elements (DOM Objects) works as expected.
解决方案
I'm confused by the line got2 = win.getMember("obj");. It seems like you're expecting that line to get the foo object. As I understand it, win.getMember("obj") will get you the obj property on the DOM window node, which doesn't exist. For example, from this page:
JSObject win = JSObject.getWindow(this);
JSObject doc = (JSObject) win.getMember("document");
JSObject loc = (JSObject) doc.getMember("location");
If you want to get the foo object, the best way I'm aware of is to make a JavaScript method you can call from the Java applet.
JavaScript:
var foo = {"one":1, "two":2};
function getFoo() { return foo; }
Applet:
import netscape.javascript.*;
JSObject win;
JSObject foo;
void setup(){
size(400,200,P2D);
background(255);
win = JSObject.getWindow(this); //gets the root JSObject
foo = (JSObject)win.call("getFoo", null);
}
void draw(){
if (mousePressed == true){
println(foo.getMember("one"));
}
}