chrome.management.onInstalled.addListener throw Uncaught SyntaxError:意外的标识符

时间:2013-04-16 00:42:57

标签: google-chrome google-chrome-extension

我正在尝试编写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);
    }
    
  5. 我正在尝试通过查看chrome://扩展页面调试background.html页面,我看到了 -

        Uncaught SyntaxError: Unexpected identifier
    

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

    请帮忙!!不确定是什么导致“未捕获的SyntaxError:意外的标识符”错误...可能它是太基本的东西,但是,我不能通过查看它很长一段时间来抓住它!

1 个答案:

答案 0 :(得分: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'));