1

ウィンドウJSObjectのLiveConnectgetMember(String)メソッドを使用すると、「Object」タイプのJavaオブジェクトが返されますが、それに定義されている期待されるメンバーが見つかりません。また、getMember()を引き続き使用するためにJSObjectにキャストすることもできません。

DOMノードおよび要素(DOMオブジェクト)へのアクセスは期待どおりに機能します。

4

1 に答える 1

0

私はその行に混乱していますgot2 = win.getMember("obj");fooその行がオブジェクトを取得することを期待しているようです。私が理解しているように、存在しないDOMノードwin.getMember("obj")のプロパティを取得します。たとえば、このページから:objwindow

JSObject win = JSObject.getWindow(this);
JSObject doc = (JSObject) win.getMember("document");
JSObject loc = (JSObject) doc.getMember("location");

オブジェクトを取得したい場合foo、私が知っている最善の方法は、Javaアプレットから呼び出すことができるJavaScriptメソッドを作成することです。

JavaScript:

<script type="text/javascript">
var foo = {"one":1, "two":2};

function getFoo() { return foo; }
</script>

アプレット:

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"));
  }
}
于 2009-02-05T14:37:11.600 に答える