需要从NPAPI函数返回多个值

时间:2011-07-14 06:26:35

标签: plugins google-chrome npapi

我正在尝试创建一个NPAPI插件,我调用一个javascript函数并从插件中返回一些值。我通过在NPVariant指针中设置字段来完成此操作。但由于它是一个结构,我一次只能放一个字符串。 在少数情况下,我需要从NPAPI函数返回多个值或数组到javascript。有关如何实现这一目标的任何想法吗?

1 个答案:

答案 0 :(得分:0)

我知道完成你想要的唯一方法是返回一个javascript数组;有两种方法可以获得这样的数组。第一种(在我看来理想的方式)方法是通过调用NPN_GetValue来获取窗口NPObject,然后调用“array”,第二种方法是使用NPN_Evaluate。

一旦你拥有了数组(它将是一个NPObject),你可以使用你想要添加的项来调用它。

这是FireBreath返回FB :: VariantList(FB :: variant对象的向量)时的作用;它只是创建一个数组,将它们全部填入,然后返回该NPObject。因此,这是经过测试的可靠解决方案。你也可以调用window.object()然后调用SetProperty来返回一个javascript对象;数组区域也是对象,所以你甚至可以创建一个既是数组(索引)又是对象(key-> val)的混合体。