我的问题很简单,我试图创建一个调用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
}
}
如果有人有任何想法,我将不胜感激。
发布于 2012-05-16 18:50:59
找了一会儿,我发现我忘了一件事。在我的background.js中,我没有给NaCl发送任何消息,所以它不能工作。
我只需要添加一行:
NaclCorrectionModule.postMessage('');
感谢您阅读我的问题,我希望这能对某些人有所帮助!
https://stackoverflow.com/questions/10335284
复制相似问题