在Chrome扩展程序中添加NaCl

时间:2012-04-26 14:14:22

标签: google-chrome-extension google-nativeclient

我的问题很简单,我试图创建一个称为NaCl模块的chrome扩展。我的按钮和不同的文件似乎没问题,我在C ++中非常简单的代码返回一个PostMessage hello World。但是,当我尝试它时,它不起作用。在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        
  }
}

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

1 个答案:

答案 0 :(得分:14)

经过一番寻求,我发现我忘记了什么。在我的background.js中,我没有向NaCl发送任何消息,因此无法正常工作。

我只需要添加1行:

NaclCorrectionModule.postMessage('');

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