2012-04-26 4 views
17

私の質問は簡単ですが、NaClモジュールを呼び出すクロムエクステンションを作成しようとしました。私のボタンと別のファイルは大丈夫ですが、C++の私の非常に簡単なコードはPostMessage hello Worldを返します。しかし、私はそれを試しても、それは動作しません。 Chrome拡張モジュールにNaClモジュールを含めるために行っていないことがありますか?私は少し失望していると言わなければならない。ここでクロムエクステンションにNaClを追加する

は私の "background.html" です:

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を":

ここ

<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" であります

誰かがアイディアを持っていれば、私は感謝します。

答えて

14

少し探してから、私は何かを忘れていることがわかりました。私のbackground.jsでは、NaClにメッセージを送信しなかったので、動作しません。

私は唯一の1行を追加するために必要な:

NaclCorrectionModule.postMessage(''); 

は私の質問を読んでいただきありがとうございます、と私はこれが誰かを助けることができると思います!

関連する問題