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:
<script type="text/javascript">
var foo = {"one":1, "two":2};
function getFoo() { return foo; }
</script>
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"));
}
}