我在this link的帮助下尝试了Gecko SDK 1.9.1提供的NPRuntime
示例。
Firefox 3.6完全正常。
按照上述步骤,我创建了一个新的脚本插件(npmyplugin.dll
)。我目前将npmyplugin.dll
放在Firefox/plugins
以外的文件夹中。我正在注册表中注册相关的mime类型和插件路径。该插件正确加载。但现在浏览器没有调用NPP_GetValue
。
我怀疑这一定是因为我将插件放在Firefox/plugins
以外的目录中。因此我对npruntime.dll
(Gecko sdk附带的样本)做了同样的事情。令人惊讶的npruntime.dll
脚本工作正在发挥作用。请指导我在创建新插件时是否遗漏了任何重要内容。
答案 0 :(得分:3)
NPP_GetValue在第一次使用javascript访问它之前不会被调用来获取NPObject。当你执行getElementById时,它将进行调用。
可能正在对GetValue进行其他调用,但是您没有看到它们,因为您没有处理它们。但是,这仍然无法保证。
答案 1 :(得分:0)
很抱歉这么晚回复。我以某种方式解决了这个问题。我正在使用标签嵌入插件
然后我写了一个小的javascript代码 var MyWorkingPlugin = document.getElementById('MyPlugin');似乎在执行上面的javascript之后调用了NPP_GetValue。目前我没有令人信服的理由说明它为什么会发生,但它确实有效,我现在很高兴。如果有人能解释上述行为,请告诉我们。