2012-04-26 10 views
17

Moje pytanie jest dość proste, próbowałem utworzyć rozszerzenie chrome, które wywołuje moduł NaCl. Mój przycisk i inne pliki wydają się być w porządku, a mój całkiem prosty kod w C++ zwraca PostMessage hello World. Ale kiedy próbuję, to nie działa. Czy są jakieś szczególne rzeczy, których nie zrobiłem, aby włączyć moduł NaCl do rozszerzenia przeglądarki Chrome? Muszę powiedzieć, że tracę trochę nadziei.Dodawanie NaCl w rozszerzeniu Chrome

Oto mój "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> 

Oto moje "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); 

I wreszcie moja "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   
    } 
} 

Jeśli ktokolwiek ma jakieś pomysły, byłbym wdzięczny.

Odpowiedz

14

Po krótkiej wizycie odkryłem, że coś zapomniałem. W moim background.js, nie wysłałem żadnej wiadomości do NaCl, więc nie może działać.

Potrzebowałem tylko dodać 1 linia:

NaclCorrectionModule.postMessage(''); 

Dziękuję za przeczytanie mojego pytanie i mam nadzieję, że może to komuś pomóc !!