2012-04-26 39 views
17

我的問題很簡單,我嘗試創建一個叫做NaCl模塊的chrome擴展。我的按鈕和不同的文件似乎沒問題,我在C++中的簡單代碼返回PostMessage hello World。但是,當我嘗試它時,它不起作用。我有沒有在Chrome擴展中包含NaCl模塊的具體事情?我必須說我有點失去希望。在Chrome擴展中添加NaCl

這裏是我的 「background.html」:

<body> 
    <script src="background.js"></script> 
    <div id="listener"> 
    <embed name="nacl_module" 
     id="nacl_correction" 
     src="nacl_correction.nmf" 
     type="application/x-nacl" /> 
    </div> 
    <script > 
    document.getElementById('listener').addEventListener('load', moduleDidLoad, true); 
    </script> 
</body> 

這裏是我的 「background.js」:

var NaclCorrectionModule = null; // Global application object. 

function moduleDidLoad() { 
    NaclCorrectionModule = document.getElementById('nacl_correction'); 
    //alert(NaclCorrectionModule); 
    if (NaclCorrectionModule == null) { 
     alert('Out');  
    } 
    else { 
     alert (NaclCorrectionModule);  
    } 
    NaclCorrectionModule.addEventListener('message', handleMessage, false); 
} 
function handleMessage(message_event) { 
    alert(message_event.data); 
} 
chrome.browserAction.onClicked.addListener(moduleDidLoad); 

,終於,我的 「manifest.json的」:

{ 
    "name": "Correction de Cordial sous Chrome", 
    "version": "1.0", 
    "background_page" :"background.html", 
    "description": "Intégration d'une extension Cordial pour la correction sous Chrome", 
    "permissions": [ 
    "tabs", "http://*/*" 
    ], 
    "browser_action": { 
    "default_icon": "corriger_big.png", // Icône de l'extension 
    "default_title": "Correction de Cordial" // Titre affiche sur le bouton   
    } 
} 

如果有人有任何想法,我會感激。

回答

14

經過一番尋求,我發現我忘了一些東西。在我的background.js中,我沒有發送任何消息給NaCl,所以它不能工作。

我只需要加1行:

NaclCorrectionModule.postMessage(''); 

感謝您閱讀我的問題,我希望這可以幫助別人!