Erreur d'extension Chrome avec 'onCommand'

Je reçois l'erreur "Uncaught TypeError: Impossible de lire la propriété 'onCommand' de undefined" lors de l'exécution d'une extension Chrome avec le contenu suivant:

Manif.json:

{ "name": "Test", "description": "Key command test.", "version": "1.0", "manifest_version": 2, "content_scripts": [ { "js": ["background_test.js"], "matches": [ "http://*/*", "https://*/*"] }], "commands": { "Ctrl+M": { "suggested_key": { "default": "Ctrl+M", "mac": "Command+M" }, "description": "Ctrl+M." }, "Ctrl-L": { "suggested_key": { "default": "Ctrl+L", "mac": "Command+L" }, "description": "Ctrl+L" } } } 

Background_test.js:

 chrome.commands.onCommand.addListener(function(command) { if (command === "Ctrl+L") { console.log("Ctrl-L successful."); } else if (command === "Ctrl+M") { console.log("Ctrl+M successful."); } }); 

Tout ce qu'il est supposé faire est d'imprimer "Ctrl-M réussie" si Ctrl-M est pressé et d'imprimer "Ctrl-L avec succès" si Ctrl-L est pressé.

Cette question semble contenir une réponse à ce problème, mais je ne comprends pas la réponse et je ne peux pas ajouter un commentaire pour demander d'autres explications car je n'ai pas assez de réputation: «Votre auditeur onCommand défini dans un script de contenu ? Cela ne fonctionnera probablement pas là, vous devez l'inclure dans une page d'arrière-plan ou une popup d'action. " Comment suis-je censé définir onCommand dans la page de fond? Je ne pouvais rien trouver sur quelque chose, que ce soit dans l'API ou via Google en général.

J'ai également essayé de recharger l'extension et de saisir manuellement les raccourcis clavier manuellement comme cela a été suggéré ici , en vain.

Qu'est-ce que j'oublie ici?

Les fichiers chrome.com ne sont pas disponibles par contents_scripts (tel que défini dans https://developer.chrome.com/extensions/content_scripts ).

Pour le faire fonctionner, vous pouvez modifier votre manifeste pour:

 { "name": "Test", "description": "Key command test.", "version": "1.0", "manifest_version": 2, "permissions": [ "<all_urls>" ], "background": { "scripts": ["background_test.js"], "persistent": true }, "commands": { "Ctrl+M": { "suggested_key": { "default": "Ctrl+M", "mac": "Command+M" }, "description": "Ctrl+M." }, "Ctrl+L": { "suggested_key": { "default": "Ctrl+L", "mac": "Command+L" }, "description": "Ctrl+L" } } } 

De plus, Ctlr + L ne fonctionne pas (au moins sur Mac), comme déjà utilisé par chrome pour se concentrer sur la barre d'adresse.

L'élément sera visible dans la console de l'extension. Pour le voir ouvrir chrome: // extensions / et cliquez sur la vue Inspecter: page d'arrière-plan de votre extension.