2012-04-26 50 views
17

Câu hỏi của tôi khá đơn giản, tôi đã cố gắng tạo tiện ích mở rộng chrome gọi là mô-đun NaCl. Nút của tôi và các tập tin khác nhau dường như là ok, và mã khá đơn giản của tôi trong C++ trả về một PostMessage hello World. Nhưng, khi tôi thử nó, nó không hoạt động. Có những điều cụ thể mà tôi đã không thực hiện để bao gồm một mô-đun NaCl trong một phần mở rộng của Chrome? Tôi phải nói rằng tôi hơi mất hy vọng.Thêm NaCl vào Tiện ích mở rộng của Chrome

Đây là của tôi "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> 

Đây là của tôi "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); 

Và, cuối cùng, tôi "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   
    } 
} 

Nếu ai có ý tưởng nào, tôi sẽ biết ơn.

Trả lời

14

Sau một chút tìm kiếm, tôi đã phát hiện ra rằng tôi đã quên điều gì đó. Trong background.js của tôi, tôi không gửi bất kỳ tin nhắn nào tới NaCl, vì vậy nó không thể hoạt động.

Tôi chỉ cần thêm 1 dòng:

NaclCorrectionModule.postMessage(''); 

Cảm ơn bạn đã đọc câu hỏi của tôi, và tôi hy vọng điều này có thể giúp ai đó !!

Các vấn đề liên quan