NPAPI多个实例冲突

时间:2012-02-27 18:31:32

标签: npapi browser-plugin

我开发了一个可编写脚本的NPAPI插件。当我尝试在Chrome / Firefox中加载单个实例时,我没有问题回复到网页(网页A)及其javascript。但是一旦我用嵌入式插件打开一个新页面(网页B),它想要传达网页A而不是网页B.我如何区分这两者?

这可能是因为入口点已经设置并且需要重置为正确的实例吗?

由于

1 个答案:

答案 0 :(得分:1)

入口点不会影响您所说的内容;很可能你没有正确地跟踪NPP实例,或者你有其他全局不应该的东西。

基本入口点不是特定于实例的;如果查看NPP_ *函数,所有特定于实例的函数都将“NPP”作为第一个参数;通常,您将在NPP的pdata字段中保留指向某种数据结构的指针,这是您应该用来区分不同实例的内容。如果您没有正确地执行此操作,或者如果您正在存储应该是特定于实例的全局变量或静态变量,那么这些变量都可能导致您描述的问题。

您可能需要考虑使用FireBreathNixysa;第一个将NPAPI的大部分痛苦抽象出去,并为你提供IE支持,第二个可以为你生成带有API的骨架,这样你就可以填写其他代码并开始使用已经有效的东西。

有关NPP结构如何运作以及如何区分不同实例的更多信息,请访问http://npapi.com/tutorial2