Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
NP API 插件中的函数创建 NPObject 并返回到 javascript。然后将带有返回 NPObject 的 javascript 变量用作插件其他功能的参数。例如
var obj = plugin.GetObject()
plugin.UseObject( 对象 )
但是在第二个函数(UseObject)中,参数的值不是原始的 NPObject 而是 NPObject JS 包装类。有没有办法从 NPObject JS 包装类的实例中获取原始 NPObject?
简短的回答:你不能。
更复杂的答案:一些浏览器会给你原始对象,但现在大多数都不会,并且没有办法取消引用它们不透明的 NPObject 接口以返回底层对象。
替代解决方案:不要尝试以这种方式获取它,而是向您的 NPObject 添加一个唯一的 id 并将一个全局映射添加到指针。然后当你得到一个你认为可能是对象的 NPObject 时,调用一个方法(或获取一个属性)来获取唯一 ID,然后你可以查找指针。
这是我发现的唯一一种在所有浏览器中都能始终如一地工作的方法。