2012-09-12 15 views
0

在javascript中我的代码如下:如何捕获的onload,的onerror在NPAPI插件

function start() { 

    var start = document.getElementById('start'); //start is object for my plugin 
    if(start){ 
    getAsLoad(start); 
    } 
} 
function getAsLoad(startObj) { 
var load = startObj.startMethod(); 

    // Handle progress, success, and errors 
    load.onload = loaded; 
    load.onerror = errorHandler; 
} 

function loaded(evt) { 
    var StringData = evt.target.result; 
    alert(StringData);  
} // Like loaded similar code for errorHandling 

如何在普通的NPAPI插件启动,事件处理机制,我知道firebreadth是小菜一碟,根据我的要求我不能使用它。所以这种事情我必须在NPAPI插件中实现。提前致谢。

回答

1

最简单的方法就是让javascript调用你的插件。

如果你想从插件做到这一点,不过,你刚才得到的DOM窗口NPObject并开始调用方法和获取属性等

例如,要获得“开始”,你可以打电话用的getProperty “文档”,然后用“getElementById”和“start”作为参数调用生成的NPObject的Invoke。

如果您想要将回调插入到您的插件中,那么您需要创建一个处理InvokeDefault的NPObject,这个回调触发时将调用的是NPObject。这有点痛苦,但从那里的细节是相同的JavaScript,只是一点点繁琐

+0

taxilian如你解释,是否有任何代码示例在NPAPI或任何有用的链接实现。 –

+1

基本上它是用在http://stackoverflow.com/questions/12078250/return-array-from-npapi-plugin-to-java-script – taxilian

+0

我用它taxilian,我唯一担心的是load.onload =加载; load.onerror = errorHandler; onload属性我将不得不在我的插件中定义属性onload之后,我必须调用NPObject上的NPN_InvokeDefault或其他东西,因为右侧是加载函数。 load.onload = loaded;将工作。 –