0

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.

4

1 に答える 1