jxBrowser の最新バージョンでは、JSContext に createObject() メソッドが導入されています。Java から直接 String (またはその他の型) を作成したいと考えています。createObject メソッドを使用してそれを行うにはどうすればよいですか?
空のオブジェクトを問題なく作成でき、そのプロパティを設定することもできますが、文字列や配列、またはその他の型を作成する方法がわかりません。
助けてくれてありがとう!
jxBrowser の最新バージョンでは、JSContext に createObject() メソッドが導入されています。Java から直接 String (またはその他の型) を作成したいと考えています。createObject メソッドを使用してそれを行うにはどうすればよいですか?
空のオブジェクトを問題なく作成でき、そのプロパティを設定することもできますが、文字列や配列、またはその他の型を作成する方法がわかりません。
助けてくれてありがとう!
現在、JSContext では Java から JavaScript オブジェクトのみを作成できます。String または Array を作成する必要がある場合は、次の方法を使用できます。
JSValue value = browser.executeJavaScriptAndReturnValue("'this is my string'");
JSString jsString = value.asString();
少しハッキングしてみました...
やっている:
obj = jscontext.createObject()
obj.setProperty("constructor", Array)
obj.setProperty("__proto__", Array)
JSArray ではありませんが、JavaScript の配列のように機能するオブジェクトを作成します (このオブジェクトで eval を呼び出す場合)。
このアプローチは String では機能しません。String は特別なタイプのコンストラクターだと思います。