0

我正在尝试编写一个 chrome 扩展程序,以通过使用 chrome 网上商店或其他方式来监听其他扩展程序的安装/卸载/启用/禁用事件。

我打算为此使用 chrome.management 模块。

  1. 我已经在 manifest.json 文件中声明了权限。

    "permissions": [
        "management"
    ],
    
  2. 我有一个 background.html 页面

    "background": {
        "page": "background.html"
    },
    
  3. 我已将 background.js 作为 background.html 页面的一部分

    <html>
    <script type="text/javascript" src="js/background.js"></script>
    <body>
    </body>
    </html>
    
  4. 这是我的 background.js

    chrome.management.onInstalled.addListener(function(ExtensionInfo info) {
      console.log('somethingz installed...');
      printInfo(info);
      });
    
    chrome.management.onEnabled.addListener(function(ExtensionInfo info) {
      console.log('somethingz enabled...');
      printInfo(info);
    });
    
    
    chrome.management.onDisabled.addListener(function(ExtensionInfo info) {
      console.log('somethingz disabled...');
      printInfo(info);
    });
    
    
    function printInfo(info)
    {
      console.log("id: " ++ info.id);
      console.log("name: " ++ info.name);
      console.log("description: " ++ info.description);
      console.log("version: " ++ info.version);
      console.log("mayDisable: " ++ info.mayDisable);
      console.log("enabled: " ++ info.enabled);
      console.log("disabledReason: " ++ info.disabledReason);
      console.log("type: " ++ info.type);
      console.log("appLaunchURL: " ++ info.appLaunchURL);
      console.log("homepageUrl: " ++ info.homepageUrl );
      console.log("updateUrl: " ++ info.updateUrl  );
      console.log("offlineEnabled: " ++ info.offlineEnabled);
      console.log("optionsUrl: " ++ info.optionsUrl);
      console.log("icons: " ++ info.icons);
      console.log("permissions: " ++ info.permissions);
      console.log("hostPermissions: " ++ info.hostPermissions);
      console.log("installType: " ++ info.installType);
    }
    

我正在尝试通过查看 chrome://extensions 页面来调试 background.html 页面,我看到了 -

    Uncaught SyntaxError: Unexpected identifier

由于此错误,事件未按预期触发。

请帮忙!!不知道是什么导致了“Uncaught SyntaxError: Unexpected identifier”错误……可能它太基本了,但是,我看了很长一段时间都无法捕捉到它!

4

1 回答 1

3

您的代码有两个主要问题。首先,您在侦听器中包含参数的类型,在这种情况下ExtensionInfo,删除它。其次,您使用 2+将其更改为 1。生成的代码如下所示:

chrome.management.onInstalled.addListener(function(info) {
  console.log('somethingz installed...');
  printInfo(info);
});

和这个

function printInfo(info){
  console.log("id: " + info.id);

作为旁注,您可以执行以下操作,而不是手动记录信息的每个部分:

console.log(JSON.stringify(info).replace(',','\n'));
于 2013-04-16T00:53:33.703 回答