JXBrowser - 返回false

时间:2017-03-11 11:16:04

标签: jxbrowser

这不应该返回一个数组吗? 使传递对象以模仿客户端的行为变得非常困难。

实际上即使window.asObject().setProperty("aaa", new String[]{"bbb"});也不是Javascript数组。请参阅以下示例:

execute("aaa.splice != null ? 'a' : 'b'")
execute("Arrays.isArray(aaa) ? : 'a' : 'b'")

在UI4J和Rhino中运行良好,但现在不在JXBrowser中。

1 个答案:

答案 0 :(得分:1)

在JxBrowser中,只有Java基元类型被转换为本机JavaScript类型。对于其他类型,您设置为JSObject的属性将映射到相应的Java对象,并且当您调用JavaScript对象的方法时,实际上会调用相应的Java对象方法。当前实现中的数组存在一些限制,但是,您可以通过索引获取数组大小并访问其成员:

爪哇:

window.setProperty("arr", new String[]{"aaa", "bbb", "ccc"});

JavaScript的:

var length = window.arr.length();
for (int i = 0; i < length; i++) {
    console.log(window.arr[i]);
}