如何从NPObject JS包装类中获取NPObject

时间:2012-11-10 13:33:29

标签: plugins npapi

NP API插件中的函数创建NPObject并返回到javascript。然后使用返回的NPObject的javascript变量作为插件的其他一些功能的参数。 e.g。

var obj = plugin.GetObject()

plugin.UseObject(obj)

但是在第二个函数(UseObject)中,参数的值不是原始NPObject而是NPObject JS包装类。 有没有办法从NPObject JS包装类的实例中获取原始的NPObject?

1 个答案:

答案 0 :(得分:4)

简答:你不能。

更多参与答案:有些浏览器会为您提供原始对象,但大多数情况下都不会,并且无法通过其不透明的NPObject接口取消引用以返回基础对象

替代解决方案:不是试图以这种方式获取,而是向NPObject添加唯一ID,并为指针添加全局映射。然后当你得到一个你认为可能是对象的NPObject时,调用一个方法(或获取一个属性)来获取唯一的ID,然后你可以查找指针。

这是我发现的唯一可以在所有浏览器中保持一致的方法。