我不能在chrome扩展工作中制作“命令”

时间:2015-09-21 09:42:19

标签: javascript google-chrome google-chrome-extension

我正在尝试编写chrome扩展程序。我正面临一些问题。我无法在Chrome扩展程序中使用commands。下面给出了我编写的代码。 这是我的manifest.json文件。

{
    "manifest_version": 2,
    "name": "Test",
    "description": "This is just a test",
    "version": "1.0",
    "browser_action": {
        "default_icon": "icon.png"
    },
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content.js"]
        }
    ],
    "commands": {
        "toggle-feature-foo": {
            "suggested_key": {
                "default": "Ctrl+Shift+1",
                "mac": "Command+Shift+1"
            },
            "description": "Show Alert"
        }
    }
}

以下是content.js文件。

alert("This is just a test 3");
chrome.commands.onCommand.addListener(function(command) {
    alert('Command:', command);
});

问题:我可以看到第一个提醒。但是当我按 Ctrl + Shift + 1 时,我无法看到第二个警报。我做错了什么?

1 个答案:

答案 0 :(得分:1)

Content Script无法使用chrome.* APIs,但以下情况除外:

  1. extension ( getURL , inIncognitoContext , lastError , onRequest , sendRequest ) https://developer.chrome.com/extensions/extension#method-getURL
  2. i18n https://developer.chrome.com/extensions/i18n
  3. runtime ( connect , getManifest , getURL , id , onConnect , onMessage , sendMessage ) https://developer.chrome.com/extensions/runtime
  4. storage https://developer.chrome.com/extensions/storage
  5. <强>解决方案:

    background page中添加您的代码或使用message passing https://developer.chrome.com/extensions/messaging