如何从createObject创建新的JSString(或其他类型)?

时间:2016-10-06 22:10:42

标签: jxbrowser

jxBrowser的最后一个版本在JSContext中引入了createObject()方法。我想直接从java创建一个String(或其他类型)。如何使用createObject方法执行此操作?

我能够创建一个没有问题的空对象甚至设置它的属性,但我不知道如何创建一个String或Array或任何其他类型。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

现在JSContext只允许从Java创建JavaScript对象。如果需要创建String或Array,则可以使用以下方法:

JSValue value = browser.executeJavaScriptAndReturnValue("'this is my string'");
JSString jsString = value.asString();

答案 1 :(得分:0)

我只是试图破解它......

这样做的:

obj = jscontext.createObject()
obj.setProperty("constructor", Array)
obj.setProperty("__proto__", Array)

将在javascript中创建一个类似于Array的对象(如果在此对象上调用eval),尽管它不是JSArray。

此方法不适用于String。我猜String是一种特殊类型的构造函数。