2012-09-12 45 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;將工作。 –