2

NP API 插件中的函数创建 NPObject 并返回到 javascript。然后将带有返回 NPObject 的 javascript 变量用作插件其他功能的参数。例如

var obj = plugin.GetObject()

plugin.UseObject( 对象 )

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

4

1 回答 1

4

简短的回答:你不能。

更复杂的答案:一些浏览器会给你原始对象,但现在大多数都不会,并且没有办法取消引用它们不透明的 NPObject 接口以返回底层对象。

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

这是我发现的唯一一种在所有浏览器中都能始终如一地工作的方法。

于 2012-11-10T20:22:59.920 回答