2012-04-26 3 views
17

Мой вопрос довольно прост, я попытался создать расширение chrome, которое вызывает модуль NaCl. Моя кнопка и разные файлы выглядят нормально, и мой довольно простой код на C++ возвращает World приветствия PostMessage. Но, когда я пытаюсь, это не сработает. Существуют ли конкретные вещи, которые я не сделал для включения модуля NaCl в расширение Chrome? Должен сказать, что я немного теряю надежду.Добавление NaCl в расширение Chrome

Вот мой "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(''); 

Спасибо за чтение на мой вопрос, и я надеюсь, что это может помочь кому-то !!

Смежные вопросы