我正在为Windows开发Firefox的NPAPI插件。这是我的java脚本:
document.addEventListener('load', documentLoad, true);
function loadPlugin(doc)
{
var objWebMon = doc.getElementById("my_firefox");
if(!objWebMon)
{
var objWebMonEmbed = doc.createElement('embed');
objWebMonEmbed.setAttribute('id', 'my_firefox');
objWebMonEmbed.setAttribute('type', 'application/npplugin');
objWebMonEmbed.setAttribute('style', 'height: 10px; width:10px; display:block;');
if(doc.body)
{
doc.body.insertBefore(objWebMonEmbed, doc.body.firstChild);
}
}
}
function documentLoad(event) {
try
{
var doc = event.originalTarget; // doc is document that triggered "onload" event
loadPlugin(doc);
var myplugin = doc.getElementById('my_firefox');
if(myplugin)
{
myplugin();
myplugin.myAction();
}
} catch(err)
{
}
}
因为我正在调用myplugin()
bool ScriptablePluginObject::InvokeDefault(const NPVariant *args, uint32_t argCount, NPVariant *result)
成功调用但调用函数myplugin.myAction()
bool ScriptablePluginObject::Invoke(NPIdentifier name, const NPVariant *args,
uint32_t argCount, NPVariant *result)
函数未调用。我已经在ScriptablePluginObject::HasProperty(NPIdentifier name)
内声明myAction,即使HasProperty
方法也没有被调用。
在catch块中我收到此错误。 TypeError: fasso.myAction is not a function
。
答案 0 :(得分:0)
以下是一些可以尝试的事情:
老实说,#3是我认为最有可能产生影响的一个,但我提出了另外两个,因为他们过去曾经咬过我的奇怪事情。祝你好运!