2012-04-26 131 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(''); 

感谢您阅读我的问题,我希望这可以帮助别人!